Methods and apparatus for predictive delivery of content over a network

ABSTRACT

Methods and apparatus for optimizing bandwidth utilization in a cable network. In one embodiment, the method comprises predicting which content will be requested by a set of users based upon the exhibited viewing habits of those users (and/or others). A server process gathers viewership data comprising a listing of programs requested by users at various times of the day. The server process aggregates the viewership data, identifies patterns within the aggregated data, and extrapolates a schedule of programs likely to be requested. In certain embodiments, the server process additionally gathers the capabilities of each cable device in an associated subnetwork. Based upon these capabilities, and based upon the total bandwidth predicted to remain available in the network over a target broadcast period, the server process may also select an optimal compression scheme and video quality level before broadcasting a certain program.

PRIORITY AND RELATED APPLICATIONS

This application is a continuation of and claims priority to co-owned,co-pending U.S. patent application Ser. No. 12/012,019 filed on Jan. 30,2008 of the same title, issuing as U.S. Pat. No. 9,060,208 on Jun. 16,2015, and incorporated herein by reference in its entirety. The presentapplication is related to co-owned and co-pending U.S. patentapplication Ser. No. 11/243,720 entitled “SELF-MONITORING AND OPTIMIZINGNETWORK APPARATUS AND METHODS” filed Oct. 4, 2005 and incorporatedherein by reference in its entirety.

COPYRIGHT

A portion of the disclosure of this patent document contains materialthat is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent files or records, but otherwise reserves all copyrightrights whatsoever.

BACKGROUND OF THE INVENTION

1. Field of Invention

The present invention relates generally to the field of networkbandwidth prediction and allocation. More particularly, in one exemplaryaspect, the present invention makes specific programs available to usersof a cable network, wherein bandwidth is predictively and/or staticallyallocated.

2. Description of Related Technology

One significant competitive challenge presently faced by networkoperators relates to managing and conserving bandwidth. This includesthe reclamation of otherwise under-utilized or unused bandwidth suchthat the service and/or customer base can be expanded withoutsignificant modifications or build-outs of the underlying networkinfrastructure. For example, it is clearly desirable to expand the typesand availability of “next-generation” network services, includinghigh-definition (HD) broadcast, VOD, high-speed data, VoIP, InteractiveTV, etc. over time, without the need for major capital expenditures orsystem modifications. Hence, network operators are increasingly focusedon techniques for “squeezing” as much capacity out of their existingnetworks as possible.

The foregoing need for bandwidth optimization and reclamation is alsoapplicable to so-called “switched” network architectures. Thesearchitectures generally distribute all of the available content providedby the network operator (e.g., MSO) to switches within the network;these switches are then used to selectively provide only those channelsactually watched or requested by users to their hubs or nodes fordelivery, thereby effectively deleting unwatched channels from thedigital broadcast stream. A “deleted” channel is automatically switchedback on when a subscriber subsequently selects it, with the switchingand delivery transition being for all intents and purposes transparentto the subscriber. This approach has obvious benefits from thestandpoint of bandwidth conservation.

Normally, the logic relied upon in a switched network switchingalgorithm is whether or not a given channel/program is currently beingrequested, or had been requested in a recent time period. Putdifferently, the standard switched network does not take advantage ofhistorical viewing patterns or viewing habits in order to determinewhich content should be provided in the subset of available programming.

Note that video consumption as a function of time changes in twodifferent manners: first, by the number of different channels beingconsumed, and, second by the type of programming being requested. Thus,the current lineup or type of programming can vary significantly frommoment to moment, but the total number of individual programs beingdelivered may remain the same. However, the actual consumption or use ofthose programs may vary through, for example, a twenty-four hour viewingperiod, and it may often be the case that one or more programs are notbeing viewed at any given time.

In the switched network environment, it is not possible to ascertainwith 100% certainty whether a user or group of users are viewing adelivered program. The BSA environment must therefore make certainassumptions about the demand for available programs. Hence, programmingcan be removed from service inadvertently or a user could maintain aconnection to a certain program, stop viewing that program for a certainperiod of time without disabling the connection, and return to find thatconnection to that program or program channel no longer available.

One way that networks (including the aforementioned broadcast switchedtype) can attempt to optimize bandwidth usage is to determine a usageprofile for a cable viewer or group of cable viewers as a function oftime (or other events). For example, by knowing that usage of particularassets (or the network as a whole) rises and falls at certain times ofthe day, the network operator can more efficiently allocate bandwidthand schedule activities (such as maintenance and testing). A higherlevel of granularity of this type of information is desirable; it wouldclearly be optimal to know what every subscriber in the network wasplanning on watching or recording at various times of the day in termsof usage patterns. From this information, both individual and aggregatedusage patterns could be determined, thereby allowing for maximal“shaping” of the network bandwidth allocation to the actual usepatterns. However, this level of information has heretofore beensubstantially unattainable, due largely to the inability (i) for theconsumer premises equipment (CPE) of the subscribers to effectivelygather and send information back to the cognizant networkoperator/entity in a timely fashion, (ii) the network operator/entity toanalyze the data to identify usage patterns and trends, and (iii) thenetwork operator/entity to extrapolate from the identifiedpatterns/trends in order make the adjustments necessary to optimizebandwidth allocation.

A number of different approaches to subscriber/client device profilingand bandwidth optimization are evidenced in the prior art. For example,U.S. Pat. No. 6,088,722 to Herz, et al. issued Jul. 11, 2000 entitled“SYSTEM AND METHOD FOR SCHEDULING BROADCAST OF AND ACCESS TO VIDEOPROGRAMS AND OTHER DATA USING CUSTOMER PROFILES” discloses a system andmethod for scheduling the receipt of desired movies and other forms ofdata from a network, which simultaneously distributes many sources ofsuch data to many customers, as in a cable television system. Customerprofiles are developed for the recipient describing how importantcertain characteristics of the broadcast video program, movie, or otherdata are to each customer. From these profiles, an “agreement matrix” iscalculated by comparing the recipient's profiles to the actual profilesof the characteristics of the available video programs, movies, or otherdata. The agreement matrix thus characterizes the attractiveness of eachvideo program, movie, or other data to each prospective customer.“Virtual” channels are generated from the agreement matrix to produce aseries of video or data programming which will provide the greatestsatisfaction to each customer. Feedback paths are also provided so thatthe customer's profiles and/or the profiles of the video programs orother data may be modified to reflect actual usage, and so that the datadownloaded to the customer's set top terminal may be minimized. Kiosksare also disclosed which assist customers in the selection of videos,music, books, and the like in accordance with the customer's objectiveprofiles. See also U.S. Pat. No. 5,758,257.

U.S. Pat. No. 6,446,261 to Rosser issued Sep. 3, 2002 entitled “SET TOPDEVICE FOR TARGETED ELECTRONIC INSERTION OF INDICIA INTO VIDEO”discloses a method of ostensibly anonymous targeted insertion of indiciainto video broadcasts. Individual televisions or other video receptiondevices are associated with set-top boxes that monitor the usage andviewing habits of the television set or other video reception device. Aviewer profile derived from data acquired from said monitoring iscreated wherein the viewer profile indicates certain characteristicsabout the viewer. This profile is transmitted to a centralized database,the centralized database being an intermediate link between the originof the video broadcast and the end viewer. The purpose of the databaseis to link specific insertable indicia with matching specific viewerprofiles. The insertable indicia are encoded directly into the broadcastvideo and re-broadcast to the end viewer where the set-top box decodesthe broadcast video and performs insertion of the indicia. Thus, thesystem and method allow advertisers to target specific ads or indicia tospecific viewing profiles.

U.S. Pat. No. 6,463,585 to Hendricks, et al. issued Oct. 8, 2002entitled “TARGETED ADVERTISEMENT USING TELEVISION DELIVERY SYSTEMS”discloses a multiple channel architecture designed to allow targetedadvertising directed to television terminals connected to an operationscenter or a cable headend. Program channels carry television programs.During commercial breaks in the television programs, advertisements,which are also broadcast on the program channel, are displayed. However,additional feeder channels carry alternate advertising that may bebetter suited for certain viewing audiences. The operations center orthe cable headend generate a group assignment plan that assigns thetelevision terminals to groups, based on factors such as area ofdominant influence and household income. A switching plan is thengenerated that instructs the television terminals to remain with theprogram channel or to switch to one of the alternate feeder channelsduring the program breaks. The television terminals record whichchannels were viewed during the program breaks, and report thisinformation to the cable headends and the operations center. Thereported information is used to generate billing for commercialadvertisers, and to analyze viewer watching habits. The invention usesupstream data reception hardware, databases and processing hardware andsoftware to accomplish these functions.

U.S. Patent Application Publication No. 20020032754 to Logston, et al.published Mar. 14, 2002 entitled “METHOD AND APPARATUS FOR PROFILING INA DISTRIBUTED APPLICATION ENVIRONMENT” discloses a method and apparatusfor deriving and characterizing the resource capabilities of clientdevices in a distributed application (DA) network environment. In afirst aspect of the invention, a method and associated architecture forobtaining client device configuration and resource information aredisclosed which incorporate a distributed profiling entity having aserver portion and client portion, the client portion being used tofacilitate query of the client device, and transfer of device resourceand configuration information back to the server portion. Thisinformation is later used by the profiling entity to alter and updatethe distribution of entity components between the server and clientdevice. The client device configuration may also be altered if required.In a second aspect of the invention, a method of scaling theaforementioned distributed profiling entity during both initial downloadand after initiation is disclosed.

U.S. Patent Application Publication No. 20020078444 to Krewin, et al.published Jun. 20, 2002 entitled “SYSTEM AND METHOD FOR THE SCALEABLEDELIVERY OF TARGETED COMMERCIALS” discloses a system for the delivery oftargeted advertising wherein a viewer profiling system distributes viewprofile data to control devices. Insertion orders are broadcast to thecontrol devices or and the control devices store selected insertionorders based on the profile data. Broadcast commercials are displayedaccording to the acquisition field of the stored insertion orders.

U.S. Patent Application Publication No. 20020123928 to Eldering, et al.published Sep. 5, 2002 entitled “TARGETING ADS TO SUBSCRIBERS BASED ONPRIVACY-PROTECTED SUBSCRIBER PROFILES” discloses the monitoringsubscriber viewing interactions, such as television viewinginteractions, and generating viewing characteristics therefrom. At leastone type of subscriber profile is generated from at least some subset ofsubscriber characteristics including viewing, purchasing, transactions,statistical, deterministic, and demographic. The subscribercharacteristics may be generated, gathered from at least one source, ora combination thereof. Groups of subscribers are formed by correlatingat least one type of subscriber profile. The subscriber groups maycorrelate to elements of a content delivery system (such as head-ends,nodes, branches, or set top boxes (STBs) within a cable TV system).Advertisement profiles are correlated to subscriber/subscriber groupprofiles, and targeted advertisements selected for thesubscribers/subscriber groups based on the correlation. The targetedadvertisements are inserted in place of default ads in program streamssomewhere within the content delivery system (head-end, node, or STB),and presented to the subscriber/subscriber group via a television.

U.S. Patent Application Publication No. 20030126611 to Chernock, et al.published Jul. 3, 2003 entitled “METHODS AND APPARATUS FOR CONTROLLINGINTERACTIVE TELEVISION INFORMATION AND COMMERCE SERVICES” discloses anapparatus for an interactive television commerce environment, acting asa central point of control and information for enabling and facilitatinginformation distribution and transactions in this environment. Theapparatus is an element of an interactive television (ITV) commercesystem, and enables the introduction of interactive commerce services incable, satellite, and other broadcast networks. Other services providedinclude interfacing with off-line interactive advertisements, historicalreview and tracking services for users, and providing feedback and ITVad modification capabilities to advertisers. The apparatus, residing ata local headend, can also add to or modify ads by inserting content oflocal relevance.

U.S. Patent Application Publication No. 20030221191 to Khusheimpublished Nov. 27, 2003 entitled “SYSTEM AND METHOD FOR DIRECTEDTELEVISION AND RADIO ADVERTISING” discloses a method and a device thatselects a commercial message for presentation based on user profilecriteria. A programming content signal is received at customer premisesequipment (CPE). A stored commercial message is selected forpresentation during presentation of the programming content signal. Theselected commercial message contains summary information related to aninformational content of the selected commercial message, and isselected based on the summary information contained by the selectedcommercial message. Information relating to each commercial messagepresented and/or an interaction with a user can be recorded and sent toa central location.

One significant issue or disability with the foregoing methods relatesto their lack of ability to gather subscriber activity (e.g., tuning andremote control unit) activity and aggregate this data into a historicaldatabase. Rather, such prior art approaches are “ethereal” from thestandpoint that any data sent back to a supervisory entity (such as theheadend) is typically not retained, but rather discarded after receipt.Reasons for this are manifold, including privacy concerns regarding thedata and the subscriber from which it was obtained, data storagelimitations, and simply the perceived lack of anything useful to do withthe data.

Another significant issue with prior art approaches to bandwidthoptimization in content-based networks (including the aforementionedbroadcast switched architectures) relates to the requirement for manualintervention or input on the part of the network operator (e.g., MSO) inorder to make best use of the available bandwidth. Specifically, manysuch systems require periodic operator adjustment and/or input, whichmay also include the requirement for periodic evaluation of thesubscriber's viewing or tuning habits, and the generation of adjustmentsto be inserted into the system control functions based thereon. Onedisability with this approach is the need for constant (ornear-constant) operator vigilance. Another disability is latency; theoperator is basically always lagging the problem since changes insubscriber habits can occur rapidly, and the efficacy of any correctionsmade by the operator will in large part depend on the timeliness withwhich the operator performs his/her analysis and correctiveaction/adjustment. Greater operator vigilance is also required when thesystem is approaching the limits of its capacity, since excursions indemand or changes in viewer habits can easily cause an over-demandcondition (potentially resulting in a loss of service to one or moresubscribers for a period of time).

As previously discussed, another significant issue with the collectionof data within a subscriber network is the need to maintain completeprivacy and anonymity for individual subscribers from which theprofiling information is obtained. Subscribers generally demand completeprivacy regarding their viewing habits, type of content viewed, etc.Hence, any commercially practical system must maintain complete privacy.In other types of network paradigms (such as video-on-demand, or VOD),the subscriber's identity and tuner location is essential toinstantiating and delivering the requested content, providing “trickmode” functions, billing the correct subscriber, etc. Furthermore, VODis not a broadcast paradigm, and hence individual streams must beinstantiated and generated for each subscriber, adding significantinfrastructure and processing overhead.

Co-owned and co-pending U.S. patent application Ser. No. 11/243,720entitled “SELF-MONITORING AND OPTIMIZING NETWORK APPARATUS AND METHODS”filed Oct. 4, 2005 and previously incorporated herein discloses methodsand apparatus for dynamically and automatically allocating networkresources through anticipatory analysis and control. In an exemplaryembodiment, the network comprises a broadcast switched digitalarchitecture, and network bandwidth allocation to multiple digitalprogram streams is performed by processing historical user tuning data,which is obtained directly from the subscriber's consumer premisesequipment (e.g., DSTB). When an increase or decrease in bandwidthrequired to support certain programs is anticipated, network resourcere-allocation is performed automatically by a software process runningon the switching server. In this fashion, speculative but “intelligent”projections of bandwidth and program stream requirements can be madeautomatically by the server software, without operator intervention. Theserver also optionally dictates the optimal monitoring and datacollection parameters to the DSTB.

Co-owned and co-pending U.S. patent application Ser. No. 10/881,979entitled “METHOD AND APPARATUS FOR NETWORK BANDWIDTH ALLOCATION” filedJun. 29, 2004, incorporated herein by reference in its entirety,discloses methods and apparatus for assigning bandwidth to a networkbased on two or more different service levels. In an exemplaryembodiment, video on-demand (VOD) session requests within a servicegroup of an HFC cable network are assigned bandwidth such that maximumopportunity is given to grant HD VOD request among SD VOD requests,while meeting the goal of minimizing service disruption by spreading thesessions over multiple QAM channels, and limiting the maximum number ofactive VOD sessions of any kind.

Another issue for content-based network operators (e.g., cable MSOs) isthat relating to non-responding CPE. Specifically, not insignificantportions of the installations in use by the network subscribers may failto operate properly in terms of reverse or upstream communications. Thismay result from problems with the CPE itself, interposed cabling, oreven network conditions. Such upstream communications are required forvarious functions within the network including communicating upstreammessages (e.g., CPE tuner or power status, request or confirmationmessages, etc.) A non-responding CPE exists when it can no longer sendmessages back to devices on the HFC network due a variety of reasonssuch as e.g., software issues, cable or connector problems, failure ofan HFC network device necessary to communicate with the CPE, CPEhardware failure, upstream RF spectrum has impairments such as noise orinterference, etc. It may also be caused by a purposeful configurationchange; e.g., installation of a game console or VCR connected in-linethat precludes upstream communication. CPE that cannot respond orcommunicate cause increased subscriber dissatisfaction due to inter aliafailure of the CPE to communicate with a hub switch which wouldotherwise “switch in” the content requested by the subscriber if nototherwise being delivered, and often require a “truck roll” or otherservice call to rectify the situation (thereby further increasingsubscriber frustration and cost to the MSO).

Moreover, while some non-responding CPE are chronic offenders, theseissues can also be somewhat migratory or variable in nature; i.e., it isnot always the same CPE that is non-responding, thereby makingcorrection of the problem somewhat of a moving target.

Yet a further issue with the prior art is that relating to switchinglatency. Specifically, in “switched” networks (i.e., those whereprograms are selectively switched in and out based on user demand), acertain latency exists between the time the subscriber enters aselection (e.g., via their remote control) and the time that therequested program is actually switched on for delivery over one of theQAMs accessible by the CPE. Moreover, a channel map must be generatedand transmitted to the CPE, thereby telling it which QAM to tune to inorder to receive the requested program stream. The CPE must also receiveand read this map, and instruct its tuner to tune to the appropriateQAM. All of the foregoing can impart a significant and perceptibledelay, which reduces subscriber satisfaction.

Based on the foregoing, there is a distinct need for improved apparatusand methods that permit the substantially automatic and timely (i)gathering of network usage, viewership and other related data; (ii)storage and transmission of this data to a processing entity within thenetwork, (iii) analysis of the data (including also historical oranecdotal data previously gathered); and (iv) anticipatory control andoptimization of network operations based on the data analysis. Suchimproved apparatus and methods would ideally consider individual programor content elements (i.e., provide a high degree of granularity), and beadaptable to various network paradigms and architectures. They wouldalso take advantage of and leverage the efficiencies provided bydifferent architectures (e.g., the broadcast switched architecture,including its capability for bandwidth conservation via cancellation ofunused program streams) where possible.

Moreover, such improved apparatus and methods would ideally allow fordelivery of at least some content to subscribers with non-respondingCPE, and would reduce switching and processing latency associated withcontent delivery requests.

SUMMARY OF THE INVENTION

The present invention satisfies the foregoing needs by providingimproved methods and apparatus for predictive program delivery andbandwidth management, such as may be used in a cable, DSL or satellitenetwork.

In a first aspect of the invention, an apparatus is disclosed. In oneembodiment, the apparatus is for use in a cable television network andadapted to determine which of a plurality of content elements todistribute over the network at a given time. In one variant, theapparatus comprises: logic adapted to receive viewership data from aplurality of cable devices; and logic adapted to determine which of theplurality of content elements are to be delivered over the network tothe plurality of cable devices based at least in part upon theviewership data.

In another variant, the viewership data comprises data indicating whichof a plurality of channels were requested at given parts of a day.

In yet another variant, the viewership data comprises data indicatingwhich of a plurality of programs were requested at given parts of a day.

In yet a further variant, the apparatus comprise logic adapted toreceive capability-related data from at least a portion of the pluralityof cable devices. The logic is adapted to determine which of theplurality of content elements are to be delivered makes thedetermination based at least in part upon the viewership data and basedat least in part upon the capability data. The capability data comprisesfor instance the decoding capabilities of at least a portion of theplurality of cable devices, and the apparatus further comprises logicadapted to select an optimal codec for compressing the content based atleast in part upon the decoding capabilities.

In still another variant, the capability data comprises the displayresolution capabilities of at least a portion of the plurality of cabledevices. The apparatus is further adapted to select an optimal bit ratefor transmitting the content based at least in part upon the displayresolution capabilities.

In yet a further variant, the logic adapted to determine which of theplurality of content elements are to be delivered is further adapted todiscover at least one pattern in the viewership data, and generate atleast one prediction or projection based at least in part on the atleast one pattern. The at least one pattern comprises for example: (i) apattern of at least one user requesting content at a certain time ofday, (ii) a pattern of at least one user requesting content during acertain day of the week, (iii) a pattern of at least one user requestingcontent during a certain period of a year, (iv) a pattern of at leastone user requesting content provided on a certain channel, (v) a patternof at least one user requesting content comprising a certain program, or(vi) a pattern of at least one user requesting content comprisingprograms with popularity ratings exceeding a certain threshold.

In another variant, the apparatus further comprises logic adapted toprioritize respective ones of patterns discovered in the viewershipdata. The logic adapted to prioritize patterns may be further adapted toassign higher priority to more recent viewing patterns than thatassigned to older viewing patterns.

In still a further variant, the apparatus further comprises logicadapted to synthesize patterns discovered in the viewership data so asto create a synthesized pattern, wherein the logic adapted to determinewhich of the plurality of content elements are to be delivered isfurther adapted to determine the content to be delivered using at leastthe synthesized pattern. In another variant, the logic adapted todetermine which of the content elements are to be delivered is furtheradapted to determine the content based at least in part upon theviewership data and bandwidth available in the network at the time ofthe delivery. Logic may also be provided which is adapted to replace alower quality version of a content element with a higher quality versionof the element, or a higher quality version of a content element with alower quality version of a content element (such as when insufficientCPE capability exists).

In another embodiment, the apparatus comprises: first logic adapted toreceive viewership data from a plurality of client devices; second logicadapted to determine, based at least in part on the viewership data,content elements to deliver over the network at a particular time; andthird logic adapted to select at least one content element for deliverythat is not predicted to be requested at the particular time.

In one variant, the second logic further comprises: logic adapted todiscover at least one request or use pattern in the viewership data; andlogic adapted to create at least one prediction based at least in partupon the patterns.

On another variant, the apparatus further comprises logic adapted toprioritize different ones of the patterns discovered in the viewershipdata over others of the patterns.

In yet another variant, the apparatus further comprises logic adapted toreceive capability data from the plurality of client devices; the secondlogic determines the content elements to be delivered based at least inpart upon the capability data.

In a second aspect of the invention, a method of determining which of aplurality of content elements to distribute over a network at a giventime is disclosed. In one embodiment, the network comprises a cabletelevision network, and the method comprises: receiving viewership datafrom a plurality of cable devices; and determining which of theplurality of content elements are to be delivered over the network tothe plurality of cable devices based at least in part upon theviewership data.

In one variant, the viewership data comprises data indicating whichchannels were requested at certain times of day, and/or data indicatingwhich programs were requested at certain times of day.

In another variant, the method further comprises receiving capabilitydata from the plurality of cable devices, wherein the determining whichof the plurality of content elements are to be delivered is based atleast in part upon the capability data.

In yet another variant, the determining which of the plurality ofcontent elements are to be delivered comprises identifying at least onepattern in the viewership data, and basing the determination at least inpart on the at least one pattern. The patterns may also be prioritizedor weighted.

In still another variant, determining which of the plurality of contentelements to be delivered is based at least in part upon availablebandwidth in the network. Moreover, a lower quality version of a contentelement may be replaced with a higher quality version of the samecontent element if: (i) each cable device from the plurality canaccommodate the higher quality version, and (ii) there is sufficientbandwidth available for replacing the lower quality version with thehigher quality version.

Alternatively, a higher quality version of a content element may bereplaced with a lower quality version of a content element when: (i)there is insufficient bandwidth available to sustain broadcasting thehigher quality version to the plurality of cable devices, or (ii) atleast some of the plurality of cable devices are not capable of decodingor utilizing the higher quality version.

In a third aspect of the invention, a method of operating acontent-based network is disclosed. In one embodiment, the methodcomprises: predicting based at least in part on historical data thecontent elements to be delivered over the network to a plurality ofclient devices at a given point in time; and operating at least one ofthe client devices without communicating data from the at least onedevice to the network.

In one variant, the operating without communicating comprises operatingthe at least one device without a functional upstream communicationchannel.

In another variant, the operating at least one of the client deviceswithout communicating data from the at least one device to the networkcomprises operating different ones of the plurality of devices withoutcommunicating data at different times.

In yet another variant, the act of predicting is based at least in parton viewership data obtained from the plurality of client devices.

In still a further variant, the viewership data comprises data relatingto the same time of day, but for different calendar days, and the methodfurther comprises weighting respective ones of the data relating to thesame time of day, but for different calendar days, differently.

In a fourth aspect of the invention, client premises apparatus adaptedto operate in a content-based network without an upstream communicationchannel is disclosed. In one embodiment, the apparatus comprises: anetwork interface, the network interface adapted to at least receivesignals from the network, the signals comprising at least one RF carrierhaving content encoded thereon; an RF tuner; a processor; and a computerprogram adapted to run on the processor, the computer program comprisinga plurality of instructions that when executed: process a receivedchannel or program request; determine, based at least in part on theprocessing, whether the requested channel or program request can beserviced locally by the apparatus; and if the channel or program requestcan be serviced locally by the apparatus, causing the tuner to tune toan RF carrier in order to service the request.

In one variant, the determination of whether the request can be servicedlocally comprises accessing a local channel map, the channel mapcomprising at least one association between a program channel and an RFcarrier. The local channel map may be e.g., received by the apparatusvia the network interface.

In another variant, the local servicing of the request comprises thetuner tuning to an RF carrier currently being delivered, the currentlydelivered RF carrier comprising the requested channel or program stream.The requested channel or program stream is not presently requested byany other apparatus within the same service group as the client premisesapparatus, yet it predictively or speculatively inserted onto the RFcarrier currently being delivered.

In a fifth aspect of the invention, apparatus for use in a content basednetwork is disclosed. In one embodiment, the network comprises a cabletelevision network, and the network apparatus is adapted to determinewhich of a plurality of content elements to distribute over the networkat a given time, the apparatus comprising: a processor; and a computerprogram adapted to run on the processor, the computer program comprisinga plurality of instructions which, when executed, determine which of theplurality of content elements to deliver over the network to theplurality of cable devices at a given time based at least in part uponat least a speculative analysis.

In one variant, the speculative analysis comprises a statisticalanalysis relating to the frequency of insertion of unrequested programs.

In another variant, the speculative analysis comprises a correlation toother programming being inserted at or bearing a predeterminedrelationship to the given time.

In a sixth aspect of the invention, a method of doing business isdisclosed. In one variant, the method comprises: providing a pluralityof subscribers to a content-based network; receiving informationregarding the viewing habits of at least a portion of the subscribers;and using the information to make predictive or speculative contentdelivery decisions within the network. The information is provided forexample in exchange for consideration.

In one variant, the received information is anonymously provided. Forexample, the anonymously provided information comprises a cryptographichash that permits a CPE of the subscribers to be positively identifiedand associated with a subscriber account.

In a seventh aspect of the invention, client premises apparatusconfigured to operate in a content distribution network without anupstream communication channel is disclosed. In one embodiment, theapparatus comprises: a network interface, the network interfaceconfigured to receive at least one or more signals from the network, theat least one or more signals comprising at least one radio frequency(RF) carrier having content encoded thereon; an RF tuner; a processor;and a computer program configured to run on the processor, the computerprogram comprising a plurality of instructions that when executed:process a received channel or program request; determine, based at leastin part on the processing, whether the requested channel or programrequest can be serviced locally by the apparatus; and if the channel orprogram request can be serviced locally by the apparatus, cause thetuner to tune to said at least one RF carrier in order to service therequest.

In an eighth aspect of the disclosure, a network server apparatusconfigured to determine which of a plurality of unrequested contentelements to distribute over a content delivery network is disclosed. Inone embodiment, the network server apparatus comprises: (i) a storagedevice, and (ii) a processor in communication with the storage device,and (iii) at least one computer process disposed on the processor. Theat least one computer process comprises a plurality of instructionsconfigured to, when executed: (i) determine which of the plurality ofunrequested content elements are to be delivered over the network to theplurality of devices at a future recurring time based at least in partupon a plurality of viewership data, the plurality of viewership datacomprises data configured to indicate recurring times of day, and (ii)transmit the plurality of unrequested content elements in a multiplexedstream to the plurality of devices at the future recurring time. Thefuture recurring time comprises a time period similar to the recurringtime of the plurality of viewership data.

In a ninth aspect of the disclosure, a method of determining which of aplurality of content elements to distribute over a content deliverynetwork at a given time is disclosed. In one embodiment, the methodcomprises: (i) receiving at a content server within the networkbandwidth data from a plurality of devices serviced by the serverregarding past or present content viewing, (ii) determining a first onesof the plurality of content elements to be subsequently delivered overthe network to the plurality of devices based at least in part upon theviewership data, (iii) and delivering the first ones of the plurality ofcontent elements to the plurality of devices. The determining of thefirst ones of the plurality of content elements to be delivered is basedat least in part upon available bandwidth in the network.

Other features and advantages of the present invention will immediatelybe recognized by persons of ordinary skill in the art with reference tothe attached drawings and detailed description of exemplary embodimentsas given below.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a functional block diagram illustrating an exemplary HFC cablenetwork configuration useful with the present invention.

FIG. 1 a is a functional block diagram illustrating one exemplary HFCcable network head-end configuration useful with the present invention.

FIG. 1 b is a functional block diagram illustrating one exemplary localservice node configuration useful with the present invention.

FIG. 1 c is a functional block diagram illustrating one exemplarybroadcast switched architecture (BSA) network useful with the presentinvention.

FIG. 2 is a logical flow diagram illustrating a generalized method ofpredictively evaluating and allocating program content according to theinvention.

FIG. 2 a is a logical flow diagram illustrating one specificimplementation of the generalized method of FIG. 2.

FIG. 2 b is a logical flow diagram illustrating one embodiment of themethod of processing a channel change request according to theinvention.

FIG. 3 is graphical representation of an exemplary viewing gridillustrating time-of-day versus program selected.

FIG. 4 is a block diagram illustrating one exemplary network topologyand software architecture according to the present invention.

FIG. 5 is a sequence diagram illustrating an exemplary communicationsequence between a server process and the CPE of an associatedsubnetwork.

FIG. 6 is a logical flow diagram illustrating one embodiment of themethod of determining a content stream according to the presentinvention.

FIG. 7 is a logical flow diagram illustrating one embodiment of theaggregation method useful with the present invention.

FIG. 8 is a graphical representation of the process and result ofaggregating the viewership data of two CPE according to the method ofFIG. 7.

FIG. 9 is a block diagram illustrating a server device per oneembodiment of the present invention.

FIG. 10 is a block diagram illustrating a customer premises device perone embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Reference is now made to the drawings wherein like numerals refer tolike parts throughout.

As used herein, the term “application” refers generally to a unit ofexecutable software that implements a certain functionality or theme.The themes of applications vary broadly across any number of disciplinesand functions (such as on-demand content management, e-commercetransactions, brokerage transactions, home entertainment, calculatoretc.), and one application may have more than one theme. The unit ofexecutable software generally runs in a predetermined environment; forexample, the unit could comprise a downloadable Java Xlet™ that runswithin the JavaTV™ environment.

As used herein, the terms “client device” and “end user device” include,but are not limited to, set-top boxes (e.g., DSTBs), personal computers(PCs), and minicomputers, whether desktop, laptop, or otherwise, andmobile devices such as handheld computers, PDAs, personal media devices(PMDs), and smartphones.

As used herein, the term “codec” refers to an video, audio, or otherdata coding and/or decoding algorithm, process or apparatus including,without limitation, those of the MPEG (e.g., MPEG-1, MPEG-2, MPEG-4,etc.), Real (RealVideo, etc.), AC-3 (audio), DiVX, XViD/ViDX, WindowsMedia Video (e.g., WMV 7, 8, or 9), ATI Video codec, or VC-1 (SMPTEstandard 421M) families.

As used herein, the term “computer program” or “software” is meant toinclude any sequence or human or machine cognizable steps which performa function. Such program may be rendered in virtually any programminglanguage or environment including, for example, C/C++, Fortran, COBOL,PASCAL, assembly language, markup languages (e.g., HTML, SGML, XML,VoXML), and the like, as well as object-oriented environments such asthe Common Object Request Broker Architecture (CORBA), Java™ (includingJ2ME, Java Beans, etc.), Binary Runtime Environment (e.g., BREW), andthe like.

As used herein, the term “conditional access” refers to any accesscontrol scheme, whether implemented in hardware, software, or firmware(or combinations thereof), including without limitation members of the“PowerKey™” family, NDS (including VideoGuard, mVideoGuard, etc.), DVB,and Motorola/General Instrument DigiCipher® family (DigiCipher II,etc.). These can be implemented using, for example, CA-specifichardware/software elements embedded in the device, the so-called“CableCARD™” plug-in security module access technology, a downloadableCA system (DCAS), or otherwise.

The terms “Customer Premises Equipment (CPE)” and “host device” refer toany type of electronic equipment located within a customer's or user'spremises and connected to a network. The term “host device” refersgenerally to a terminal device that has access to digital televisioncontent via a satellite, cable, or terrestrial network. The host devicefunctionality may be integrated into a digital television (DTV) set. Theterm “customer premises equipment” (CPE) includes such electronicequipment such as set-top boxes (e.g., DSTBs), televisions, cable modems(CMs), embedded multimedia terminal adapters (eMTAs), whetherstand-alone or integrated with other devices, Digital Video Recorders(DVR), gateway storage devices (Furnace), and ITV Personal Computers.

As used herein, the terms “display” and “monitor” mean any type ofdevice adapted to display information, including without limitationCRTs, LCDs, TFTs, plasma displays, LEDs, incandescent and fluorescentdevices.

As used herein, the term “DVI” (digital video interface) refersgenerally to any type of interface (e.g., hardware and/or software)adapted to provide interface and/or conversion between different formatsor domains, including without limitation interfaces compliant with theDigital Display Working Group (DDWG) DVI specification (e.g., DVI-A,DVI-D, and DVI-I). For example, using a DVI connector and port, adigital signal sent to an analog monitor is converted into an analogsignal; if the monitor is digital, such as a flat panel display, noconversion is necessary. A DVI output is an option in OpenCablecompliant hardware that provides a high-definition TV (HDTV) outputwhich includes copy protection.

As used herein, the term “DVR” (digital video recorder) refers generallyto any type or recording mechanism and/or software environment wherebycontent sent over a network can be recorded and selectively recalled.Such DVR may be dedicated in nature, or part of a non-dedicated ormulti-function system.

As used herein, the term “DOCSIS” refers to any of the existing orplanned variants of the Data Over Cable Services InterfaceSpecification, including for example DOCSIS versions 1.0, 1.1, 2.0 and3.0. DOCSIS (version 1.0) is a standard and protocol for internet accessusing a “digital” cable network. DOCSIS 1.1 is interoperable with DOCSIS1.0, and has data rate and latency guarantees (VoIP), as well asimproved security compared to DOCSIS 1.0. DOCSIS 2.0 is interoperablewith 1.0 and 1.1, yet provides a wider upstream band (6.4 MHz), as wellas new modulation formats including TDMA and CDMA. It also providessymmetric services (30 Mbps upstream).

As used herein, the term “headend” refers generally to a networkedsystem controlled by an operator (e.g., an MSO) that distributesprogramming to MSO clientele using client devices. Such programming mayinclude literally any information source/receiver including, inter alia,free-to-air TV channels, pay TV channels, interactive TV, and theInternet. DSTBs may literally take on any configuration, and can beretail devices meaning that consumers may or may not obtain their DSTBsfrom the MSO exclusively. Accordingly, it is anticipated that MSOnetworks may have client devices from multiple vendors, and these clientdevices will have widely varying hardware capabilities. Multipleregional headends may be in the same or different cities.

As used herein, the term “integrated circuit (IC)” refers to any type ofdevice having any level of integration (including without limitationULSI, VLSI, and LSI) and irrespective of process or base materials(including, without limitation Si, SiGe, CMOS and GaAs). ICs mayinclude, for example, memory devices (e.g., DRAM, SRAM, DDRAM,EEPROM/Flash, ROM), digital processors, SoC devices, FPGAs, ASICs, ADCs,DACs, transceivers, memory controllers, and other devices, as well asany combinations thereof.

As used herein, the terms “Internet” and “internet” are usedinterchangeably to refer to inter-networks including, withoutlimitation, the Internet.

As used herein, the term “memory” includes any type of integratedcircuit or other storage device adapted for storing digital dataincluding, without limitation, ROM. PROM, EEPROM, DRAM, SDRAM, DDR/2SDRAM, EDO/FPMS, RLDRAM, SRAM, “flash” memory (e.g., NAND/NOR), andPSRAM.

As used herein, the terms “microprocessor” and “digital processor” aremeant generally to include all types of digital processing devicesincluding, without limitation, digital signal processors (DSPs), reducedinstruction set computers (RISC), general-purpose (CISC) processors,microprocessors, gate arrays (e.g., FPGAs), PLDs, reconfigurable computefabrics (RCFs), array processors, secure microprocessors, andapplication-specific integrated circuits (ASICs). Such digitalprocessors may be contained on a single unitary IC die, or distributedacross multiple components.

As used herein, the terms “MSO” or “multiple systems operator” refer toa cable, satellite, or terrestrial network provider havinginfrastructure required to deliver services including programming anddata over those mediums.

As used herein, the terms “network” and “bearer network” refer generallyto any type of telecommunications or data network including, withoutlimitation, hybrid fiber coax (HFC) networks, satellite networks, telconetworks, and data networks (including MANs, WANs, LANs, WLANs,internets, and intranets). Such networks or portions thereof may utilizeany one or more different topologies (e.g., ring, bus, star, loop,etc.), transmission media (e.g., wired/RF cable, RF wireless, millimeterwave, optical, etc.) and/or communications or networking protocols(e.g., SONET, DOCSIS, IEEE Std. 802.3, ATM, X.25, Frame Relay, 3GPP,3GPP2, WAP, SIP, UDP, FTP, RTP/RTCP, H.323, etc.).

As used herein, the terms “network agent” and “network entity” refers toany network entity (whether software, firmware, and/or hardware based)adapted to perform one or more specific purposes. For example, a networkagent or entity may comprise a computer program running in serverbelonging to a network operator, which is in communication with one ormore processes on a CPE or other device.

As used herein, the term “node” refers without limitation to anylocation, functional entity, or component within a network.

As used herein, the term “QAM” refers to modulation schemes used forsending signals over cable networks. Such modulation scheme might useany constellation level (e.g. QPSK, 16-QAM, 64-QAM, 256-QAM, etc.)depending on details of a cable network. A QAM may also refer to aphysical channel modulated according to the schemes.

As used herein, the term “network interface” refers to any signal, data,or software interface with a component, network or process including,without limitation, those of the Firewire (e.g., FW400, FW800, etc.),USB (e.g., USB2), Ethernet (e.g., 10/100, 10/100/1000 (GigabitEthernet), 10-Gig-E, etc.), MoCA, Serial ATA (e.g., SATA, e-SATA,SATAII), Ultra-ATA/DMA, Coaxsys (e.g., TVnet™), radio frequency tuner(e.g., in-band or OOB, cable modem, etc.), WiFi (802.11a,b,g,n), WiMAX(802.16), PAN (802.15), or IrDA families.

As used herein, the term “program channel” is generally synonymous withthe concept of a perceived stream of information. For example, aprogram/user channel might comprise “Channel 3” which carries thecontent of a given network (e.g., NBC). This is to be distinguished froma physical channel, which is used to physically carry and distribute thecontent, which may for example comprise one or more QAMs within a givenportion of the RF spectrum of a cable system.

As used herein, the terms “request”, “requested”, “requesting” should betaken to include both requests to view content instantaneously (such asimmediately on a television screen), and requests to have contentrecorded for future viewing (such as by a DVR recording).

As used herein, the term “server” refers to any computerized component,system or entity regardless of form which is adapted to provide data,files, applications, content, or other services to one or more otherdevices or entities on a computer network.

As used herein, the terms “service”, “content”, and “stream” aresometimes used synonymously to refer to a sequence of packetized datathat is provided in what a subscriber may perceive as a service. A“service” (or “content”, or “stream”) in the former, specialized sensemay correspond to different types of services in the latter,non-technical sense. For example, a “service” in the specialized sensemay correspond to, among others, video broadcast, audio-only broadcast,pay-per-view, or video-on-demand. The perceivable content provided onsuch a “service” may be live, pre-recorded, delimited in time,undelimited in time, or of other descriptions. In some cases, a“service” in the specialized sense may correspond to what a subscriberwould perceive as a “channel” in traditional broadcast television.

As used herein, the term “storage device” refers to without limitationcomputer hard drives, DVR device, memory, RAID devices or arrays,optical media (e.g., CD-ROMs, Laserdiscs, Blu-Ray, etc.), or any otherdevices or media capable of storing content or other information.

As used herein, the term “user interface” refers to, without limitation,any visual, graphical, tactile, audible, sensory, or other means ofproviding information to and/or receiving information from a user orother entity, such as a GUI.

As used herein, the term “wireless” means any wireless signal, data,communication, or other interface including without limitation WiFi,Bluetooth, 3G, HSDPA/HSUPA, TDMA, CDMA (e.g., IS-95A, WCDMA, etc.),FHSS, DSSS, GSM, PAN/802.15, WiMAX (802.16), 802.20, narrowband/FDMA,OFDM, PC S/DCS, analog cellular, CDPD, satellite systems, millimeterwave or microwave systems, acoustic, and infrared (i.e., IrDA).

Overview

In one exemplary aspect, the methods and apparatus of the presentinvention provide switched architecture networks with enhanced networkbandwidth utilization and reduced switching latency by maintaining andanalyzing historical viewing or use information derived from thatnetwork. This information can then be used to fill the bandwidth that isnot currently being consumed via consumer requests with programming thatis predictively selected. These patterns may be evidenced, for example,in a listing of programs or program channels viewed during a given day,week, month, time, or season of the year. In this manner, user viewingbehavior is accurately modeled in order to better allocate availablebandwidth. Additionally, the chances of overloading the switched networkbandwidth with an inordinate amount of non-viewed programming aresignificantly reduced.

Various embodiments of the present invention may also reduce the need toinstantaneously satisfy unanticipated programming requests and therebyreduce the processing power requirements on servers, network switchesand QAM banks. As previously described, when a subscriber tunes to adeleted channel, the deleted channel must be switched on. Upstreamcommunications and processing may introduce significant latencies, aswell as consuming significant processing power at the switch or othersuch processing entity. Advantageously, in accordance with the presentinvention, the number of unanticipated programming requests will besignificantly reduced. This is largely because the content actuallydelivered to the user's CPE (versus merely the switch) will be based onpatterns of viewing behavior that have already been exhibited. Viewerswill not need to initiate requests that would require programming to bemade available instantaneously. Instead, these users need only tune toprogramming that is already being delivered over an active QAM. Theresulting reduction of unnecessary switching at the hub reduces the loadon the network switching infrastructure significantly.

The methods and apparatus disclosed herein are especially useful whenprogramming consumption changes dramatically over time. For example,primetime viewing typically comprises the maximum number of programs andthe maximum diversity of programs. This differs substantially from thedemand during early morning viewing and from that of other viewingperiods. Thus, various embodiments of the present invention will takethese viewing trends into account in determining which “unrequested”content to provide to a given group of users.

In situations where bandwidth varies throughout the day based on thetotal number of different program channels being requested, variousembodiments of the present invention predictively load and/or anticipateprogram channels in the provided service in order to maintain the properallocation of total bandwidth, even between different services (e.g.,switched delivery and VoD). This is especially useful on occasions whereprogramming bandwidth varies significantly, for instance, betweenstandard definition and high definition programming. Thus, according tosome embodiments, high definition versions of programs are used toreplace low definition versions at times where sufficient bandwidth ispredicted to be available. Similarly, low definition versions canselectively replace high definition versions if it is predicted thatthere will be insufficient bandwidth to support a high definitionbroadcast, and/or the requesting CPE do not have the capacity to processHD encoded signals.

Exemplary software architectures, operations and business “rulesengines”, and business methodologies, are also disclosed.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Exemplary embodiments of the apparatus and methods of the presentinvention are now described in detail. While these exemplary embodimentsare described in the context of the aforementioned hybrid fiber coax(HFC) cable system architecture having an multiple systems operator(MSO), digital networking capability, and plurality of clientdevices/CPE, the general principles and advantages of the invention maybe extended to other types of networks and architectures, whetherbroadband, narrowband, wired or wireless, or otherwise, the followingtherefore being merely exemplary in nature.

It will also be appreciated that while described generally in thecontext of a consumer (i.e., home) end user domain, the presentinvention may be readily adapted to other types of environments (e.g.,commercial/enterprise, government/military, etc.) as well. Myriad otherapplications are possible.

It is also noted that while the following discussion is cast primarilyin terms of two service levels (i.e., SD and HD), the methods andapparatus disclosed herein can be extended to other numbers and types ofservice levels. For example, it is foreseeable that yet even higherlevels of definition may be employed in the future (e.g., “ultra-highdefinition” or UHD), thereby allowing intelligent bandwidth conservationbetween three service levels (SD, HD, and UHD). As another option,multiple levels or rates may be present with one of the aforementionedservice levels, such as where the SD level includes levels SD1, SD2, . .. SDn, and/or the HD level similarly includes HD1, HD2, . . . HDn, witheach of these sub-levels having different data rates and/or othercharacteristics. Alternatively, bandwidth conservation according to thepresent invention may be performed not based on definition level (datarate), but some other attribute such as for example the selectiveavailability of a type of service (e.g., OD, IPTV, or DVR/PVR). Variousalternate conservation schemes are described subsequently herein ingreater detail.

It is further noted that while described primarily in the context of acable system with 6 MHz RF channels, the present invention is applicableto literally any network topology or paradigm, and anyfrequency/bandwidth, such as for example 8 MHz channels. Furthermore, asreferenced above, the invention is in no way limited to traditionalcable system frequencies (i.e., below 1 GHz), and in fact may be usedwith systems that operate above 1 GHz band in center frequency orbandwidth, to include without limitation so-called ultra-widebandsystems.

Also, while certain aspects are described primarily in the context ofthe well-known Internet Protocol (described in, inter alia, RFC 791 and2460), it will be appreciated that the present invention may utilizeother types of protocols (and in fact bearer networks to include otherinternets and intranets) to implement the described functionality.

FIG. 1 illustrates a typical content-based network configuration withwhich the anticipatory or predictive network control and operationmethodology of the present invention may be used. The various componentsof the network 100 include (i) one or more data and applicationorigination points 102; (ii) one or more content sources 103, (iii) oneor more application distribution servers 104; (iv) one or more VODservers 105, and (v) consumer premises equipment (CPE) 106. Thedistribution server(s) 104, VOD servers 105 and CPE(s) 106 are connectedvia a bearer (e.g., HFC) network 101. A simple architecture comprisingone of each of the aforementioned components 102, 104, 105, 106 is shownin FIG. 1 for simplicity, although it will be recognized that comparablearchitectures with multiple origination points, distribution servers,VOD servers, and/or CPE devices (as well as different networktopologies) may be utilized consistent with the invention. For example,the head-end architecture of FIG. 1 a (described in greater detailbelow) may be used.

The data/application origination point 102 comprises any medium thatallows data and/or applications (such as a VOD-based or “Watch TV”application) to be transferred to a distribution server 104. This caninclude for example a third party data source, application vendorwebsite, CD-ROM, external network interface, mass storage device (e.g.,RAID system), etc. Such transference may be automatic, initiated uponthe occurrence of one or more specified events (such as the receipt of arequest packet or ACK), performed manually, or accomplished in anynumber of other modes readily recognized by those of ordinary skill.

The application distribution server 104 comprises a computer systemwhere such applications can enter the network system. Distributionservers are well known in the networking arts, and accordingly notdescribed further herein.

The VOD server 105 comprises a computer system where on-demand contentcan be received from one or more of the aforementioned data sources 102and enter the network system. These servers may generate the contentlocally, or alternatively act as a gateway or intermediary from adistant source.

The CPE 106 includes any equipment in the “customers' premises” (orother locations, whether local or remote to the distribution server 104)that can be accessed by a distribution server 104. Such CPEs 106comprise processors and associated computer memory adapted to store andrun the downloaded or resident application, as well as receive thestreamed in-band content. For example, “Watch TV” or similarapplications or their components (or updates thereto) of the typedescribed subsequently herein with reference to FIG. 6 can be downloadedto the CPE as required. For example, co-owned and co-pending U.S. patentapplication Ser. No. 10/655,655 filed Sep. 5, 2003 and entitled“Technique For Updating A Resident Application And Associated ParametersIn A User Terminal Through A Communications Network”, incorporatedherein by reference in its entirety, describes one exemplary techniqueand architecture for updating applications resident on network CPE.

Moreover, the CPE can be provisioned remotely according by a networkentity; see, e.g., co-owned and co-pending U.S. patent application Ser.No. 11/607,663 entitled “METHODS AND APPARATUS FOR SOFTWARE PROVISIONINGOF A NETWORK DEVICE” filed Dec. 1, 2006, incorporated herein byreference in its entirety, which describes exemplary methods andapparatus for software provisioning (e.g., installation/update) of a CPEwithin a network.

Referring now to FIG. 1 a, one exemplary embodiment of a head-endarchitecture useful with the present invention is described. As shown inFIG. 1 a, the head-end architecture 150 comprises typical head-endcomponents and services including billing module 152, subscribermanagement system (SMS) and CPE configuration management module 154,cable-modem termination system (CMTS) and OOB system 156, as well asLAN(s) 158, 160 placing the various components in data communicationwith one another. It will be appreciated that while a bar or bus LANtopology is illustrated, any number of other arrangements as previouslyreferenced (e.g., ring, star, etc.) may be used consistent with theinvention. It will also be appreciated that the head-end configurationdepicted in FIG. 1 a is high-level, conceptual architecture and thateach MSO may have multiple head-ends deployed using customarchitectures.

The architecture 150 of FIG. 1 a further includes amultiplexer/encrypter/modulator (MEM) 162 coupled to the HFC network 101adapted to “condition” content for transmission over the network. Thedistribution servers 104 are coupled to the LAN 160, which providesaccess to the MEM 162 and network 101 via one or more file servers 170.The VOD servers 105 are coupled to the LAN 160 as well, although otherarchitectures may be employed (such as for example where the VOD serversare associated with a core switching device such as an 802.3z GigabitEthernet device). As previously described, information is carried acrossmultiple channels. Thus, the head-end must be adapted to acquire theinformation for the carried channels from various sources. Typically,the channels being delivered from the head-end 150 to the CPE 106(“downstream”) are multiplexed together in the head-end and sent toneighborhood hubs (FIG. 1 b) via a variety of interposed networkcomponents.

Content (e.g., audio, video, etc.) is provided in each downstream(in-band) channel associated with the relevant service group. Tocommunicate with the head-end or intermediary node (e.g., hub server),the CPE 106 may use the out-of-band (OOB) or DOCSIS channels andassociated protocols. The OCAP 1.0 (and subsequent) specificationprovides for exemplary networking protocols both downstream andupstream, although the invention is in no way limited to these exemplaryapproaches.

In another embodiment, the network infrastructure includes one or moreon-demand file or “carousel” functions. The present inventioncontemplates that not only will more traditional movie (e.g., MPEG)broadcast data be delivered though the mechanisms described herein, butalso data for interactive applications or other types of applications.

It will also be recognized that the multiple servers (broadcast, VOD, orotherwise) can be used, and disposed at two or more different locationsif desired, such as being part of different server “farms”. Thesemultiple servers can be used to feed one service group, or alternativelydifferent service groups. In a simple architecture, a single server isused to feed one or more service groups. In another variant, multipleservers located at the same location are used to feed one or moreservice groups. In yet another variant, multiple servers disposed atdifferent location are used to feed one or more service groups.

Contention for available edge QAM resources between these variousservers can also be arbitrated via the mechanisms described herein. Forexample, contention for edge QAMs can be arbitrated between thebroadcast switched architecture (BSA; see discussion of “switched”network below) and VOD subsystems of the network. It will be recognizedthat these contending subsystems may have different operationalparadigms as well. For example, the aforementioned exemplary BSA systemis in effect a real-time system, whereas the VOD system is not. Hence,the present invention provides a mechanism for arbitrating theseresources that avoids the difficulties of other approaches *such as,e.g., trying to arbitrate on a “session” basis.

“Switched” Networks—

FIGS. 1 b and 1 c illustrate an exemplary “switched” networkarchitecture useful with the present invention. While a so-called“broadcast switched architecture” or BSA network is illustrated in thisexemplary embodiment, it will be recognized that the present inventionis in no way limited to such architectures.

Switching architectures allow improved efficiency of bandwidth use forordinary digital broadcast programs. Ideally, the subscriber will beunaware of any difference between programs delivered using a switchednetwork and ordinary streaming broadcast delivery.

Specifically, as shown in FIG. 1 b, the network 101 of FIGS. 1 and 1 acomprises a fiber/coax arrangement wherein the output of the MEM 162 ofFIG. 1 a is transferred to the optical domain (such as via an opticaltransceiver 177 at the head-end or further downstream). The opticaldomain signals are then distributed to a fiber node 178, which furtherdistributes the signals over a distribution network 180 to a pluralityof local servicing nodes 182. This provides an effective 1:N expansionof the network at the local service end.

FIG. 1 c shows the implementation details of one exemplary embodiment ofthis switched digital network architecture. Specifically, the head-end150 contains switched broadcast control and media path functions 190,192; these element cooperating to control and feed, respectively,downstream or edge switching devices 194 at the hub site which are usedto selectively switch broadcast streams to various service groups. A BSAserver 196 is also disposed at the hub site, and implements functionsrelated to anticipatory switching and bandwidth conservation (inconjunction with a management entity 198 disposed at the head-end) asdiscussed subsequently herein. An optical transport ring 197 is utilizedto distribute the dense wave-division multiplexed (DWDM) optical signalsto each hub in an efficient fashion.

Co-owned and co-pending U.S. patent application Ser. No. 09/956,688filed Sep. 20, 2001 and entitled “Technique For Effectively ProvidingProgram Material In A Cable Television System”, incorporated herein byreference in its entirety, describes one exemplary switched digitalarchitecture useful with the present invention, although it will berecognized by those of ordinary skill that other approaches andarchitectures may be substituted.

BSA programming may comprise, without limitation, simulcasts,interactive pay-per-view (IPPV), live sporting and other events, andother selected offerings. A set-top box (STB) or two-way Digital CableReady (e.g., CableCard) television is required for viewing.

In order for the BSA function to be transparent to the subscriber,channel change latencies must be kept to a minimum (e.g., 250 ms or lessas compared to average linear digital broadcast services). Likevideo-on-demand (VOD) systems, BSA programs are streamed to a servicegroup (contrast: switch) only when being viewed. Unlike VOD, manyviewers can view the same stream. Typically, only real-time linearprograms are included in BSA broadcasts. Since there is no storageinvolved, the “VCR” controls (e.g., trick mode functions) common to VODare not available. In this regard, BSA is much simpler that VOD.Commercials or other programming segments cannot be skipped, and programbit rates can be treated as in more conventional systems.

In the context of the aforementioned BSA network, there are severalmetrics or indices which are useful in evaluating the performance of thenetwork. Specifically, the expression “peak streams” represents themaximum number of different program streams that are instantaneously(based on specified data intervals) needed. Using software, peak streamrequirements can be analyzed for each group size. It has been noted bythe Assignee hereof that generally speaking, as service group size isdecreased, peak stream needs also decrease. When viewed over asufficiently short time scale (e.g., two hour periods), it is possibleto compare the moment-to-moment variability in peak stream use. Notethat the physical network topology (which determines service group size)can also be modified, and is expected to migrate towards smaller groupsof subscribers over time.

It has also been noted that the smaller service groups display roughlythe same variability as the larger service groups down to a certainthreshold size. When considered as a percentage of maximum stream use,as service group size decreases beyond this threshold, variabilityincreases, and will impose a limit the amount of concentration that canbe safely implemented within the system. Concentration in the context ofBSA networks is defined as a ratio of the total bandwidth of theprograms offered, to the BSA bandwidth provided to the service group.While this is conveniently expressed as a ratio of stream counts, inpractice streams will be of various bit rates; concentration istherefore best thought of as the ratio of the bitrates. Concentrationgenerally (at a given grade of service or blocking frequency) trendsupwards with decreasing service group size.

Another useful metric of the value of BSA is yield. Yield is a functionof concentration and the total number of programs included. Yield isimportant to consider when comparing the value of various bandwidthreclamation techniques.

As verified by actual trials conducted by the Assignee hereof, BSAprovides significant concentration, which results in the ability tovacate significant portions of the previously occupied bandwidth (“free”bandwidth yield).

Also of interest is the metric of “redundant viewership”. Redundantviewers are those which view otherwise unique programs. Generallyspeaking, the highest number of redundant viewers occurs at prime-timeor just post prime time. This is also the time of greatest totalviewership and the time of highest peak stream needs. A design point ofX streams would provide a non-blocking grade of service; however,however, significant surplus bandwidth still exists below the X-streamlevel. Unfortunately, the greatest surpluses occur at times when otherservices (e.g., VoD) also have their lowest demands. Edge QAM resourcesharing with VoD is therefore not expected to provide significantinterleaving bandwidth gains. However, the BSA system can beadvantageously operated to allow this surplus bandwidth to be utilizedin other ways, such as for transport of data, video, voice, or evenfuture applications which would require additional bandwidth.

Gain is a useful parameter for comparison of BSA with statisticalmultiplexing technology. In BSA, percent gain is defined as:

(Concentration−1)×100  Eqn. (1)

In this context, content that occupies the “freed up” spectrum isassumed to operate with the same level of efficiency as the contentbeing processed (i.e. switched under the BSA architecture, oralternatively statistically multiplexed).

A primary advantage of the BSA paradigm is bandwidthconservation/preservation. Bandwidth for unviewed programs is notconsumed, and can be re-allocated. Similarly, new programs can be addedwithout adding bandwidth. Advantageously, programs with narrow appealcan be added in a BSA system with little if any bandwidth impact. Morepopular programs will impact the BSA bandwidth, but to a lesser extentthan was traditionally the case. Multiple bit rates can also be madeavailable for use or sale to programmers or advertisers.

BSA bandwidth efficiencies are at least in part a result ofover-subscription. Specifically, the selection of programming is greaterthan the bandwidth allocated to the service group. This can result inblocking, the case where a viewer is denied access to a requestedprogram. However, the aforementioned trials conducted by the Assigneehereof demonstrate that when properly configured, blocking events aresufficiently rare, so as to be less common than a network outage,thereby providing a sufficient level of service.

Additionally, a BSA system typically gathers and keep logs or otherrecords of programmer-specific viewership data. For example, the BSAserver gathers logs that are based on the client-server interactions.These logs or records are maintained to allow for well-considered“recapture” of non-viewed program streams (i.e., reclamation ofbandwidth). The server manages bandwidth by removing streams based onthis activity data. In typical practice, unviewed streams will bemarked, but not actually removed until the bandwidth is needed eitherbecause of a client request, or based on external resource demands suchas VOD overflow.

In one exemplary embodiment, the network manager (BSA manager 450; seeFIG. 4) logs all channel change events and is aware of the tuninglocations of all tuners, not just those that happen to be viewing BSAprograms. This provides highly accurate and complete viewership databased on actual channel changes as contrasted with extrapolations orother estimation techniques.

It may be important for the MSO to maintain subscriber privacy, for bothlegal and commercial reasons. As discussed in greater detailsubsequently herein, subscriber identities are optionally protected byhashing or encryption of the tuner address prior to logging and storage.The stored address and associated events are therefore not traceable tothe user account. The resulting obscured tuner address is repeatable sothe necessary tuning location and user activity tracking may beperformed while still maintaining complete anonymity. Alternatively, allor portions of the user-specific (albeit anonymous) information may bestripped off before storage of the activity data within the historicaldatabase.

In the exemplary embodiment of the present invention, the edge switch194 (generally located in the distribution hub as shown in FIG. 1 c) isflooded with all available programs. This improves transport efficiency,because a simple unidirectional “drop and continue” protocol isperformed at each hub location on a given optical transport ring 197.The concept of flooding also simplifies the transport network in that nocontrol system is needed; rather a simple “deliver everything” paradigmis used. This approach also advantageously makes this portion of thesignal chain more robust, since more complex control systems generallylend themselves to a higher operational failure rate.

Because ordinary broadcast programming is supplied using BSA, thetransport network 197 needs to have a high degree of availability. Inthe exemplary embodiment, BSA program transport is supplied through aredundant, spatially diverse counter-rotating Ethernet ring topology,although other topologies may be utilized with success.

Predictive Resource Allocation Methods—

Referring now to FIG. 2, one exemplary embodiment of the generalizedmethodology of predictive resource allocation and content delivery isdescribed. It will be appreciated that while the following methods aredescribed in terms of bandwidth allocation, these methods may be usedfor allocation of other network resources as well with properadaptation.

As shown in FIG. 2, the method 200 first comprises evaluating availablebandwidth per step 202. This may comprise for example determining thecurrent use of bandwidth within the network, and then subtracting thatfrom the total network capacity.

Next, in step 204, a prediction or model of program and bandwidth usage(based on constituent programs) is developed.

Per step 206, the relevant process (e.g., server process 452 describedsubsequently herein) or its proxy receives requests from network usersfor the modeled content (programs).

Per step 208, any bandwidth constraints present are identified andcompensated for. For example, identification of constraints mightcomprise simply determining the aggregate bandwidth required to serviceall of the individual requests as a function of time, and comparing thisto available bandwidth during those same times to identify potentialshortfalls. Compensation for any identified shortfalls might includee.g., removing redundant or high-bandwidth versions of one or moreprograms, or migrating certain subscribers to lower-bandwidth versionsof the same content (“defragmentation” of subscribers, of sorts), asdescribed in greater detail below.

Lastly, per step 210, remaining bandwidth is identified, and one or moreprograms predictively inserted according to the model of step 204.

Referring now to FIG. 2 a, one exemplary embodiment of the generalizedmethod of FIG. 2 is described.

In the embodiment depicted by FIG. 2 a, at step 222, a server processdetermines the currently available bandwidth (for instance, by theprocess described in co-assigned application Ser. No. 11/243,720,entitled “SELF-MONITORING AND OPTIMIZING NETWORK APPARATUS AND METHODS”and incorporated by reference herein in its entirety) and also predictsfuture unused bandwidth (for instance, the methods described inco-assigned application Ser. No. 11/800,093 filed May 3, 2007, entitled“METHODS AND APPARATUS FOR PREDICTIVE CAPACITY ALLOCATION”, which isalso incorporated by reference in its entirety).

Optionally, at step 224, the server process may determine the programsthat are not currently being requested (for instance, by using themethods described in application Ser. No. 11/243,720 discussed above).

At step 226, the server process accesses compiled historical information(see, e.g., aforementioned application Ser. No. 11/243,720). In someembodiments, this information comprises a table that cross-referencestime-of-day or other chronological reference with the program channel(s)requested. In other embodiments, this information comprises a table thatcross-references time-of-day, etc. with the program(s) requested, asillustrated in FIG. 3. Other reference or relational schemes may be usedas well. Note that although FIG. 3 appears much like a TV viewing grid,the darkened cells represent programs that were actually requested, notmerely available to be requested (i.e., an undarkened cell indicatesthat a particular program was available at a certain time but was notrequested by anyone). It should also be noted that FIG. 3 may not berepresentative of an actual scenario insofar as it indicates that veryfew programs were actually requested over the indicated time period. Ingeneral, it is expected that viewing will be sparse during the middle ofthe night, higher in the morning, moderate during the daytime, andhighest in the evening, although current events, holidays, etc canaffect this generalization significantly. Accordingly, different viewingversus time templates or profiles may also be created an implementedconsistent with the invention; e.g., “weekday template”; “Christmastemplate”, “election day template”, and so forth. Such templates can besubstituted for actual analysis if it is believed that they willcomprise an accurate representation of actual viewer behavior in theprior in question.

Although the cells in FIG. 3 represent one-hour increments, suchone-hour increments are shown mainly for illustrative purposes. Theactual required time resolution may be determined according toexperience, or even varied (expanded, contracted, tied to another event,etc.) situationally. Thus, the record of requested channels and/orprograms may be delimited by myriad other time resolutions (orcombinations thereof), for example, fifteen minutes or less forconventional program channels, or two minutes for on-demand programming,and so forth.

Continuing per step 226, upon using the historical information and theinformation concerning channels or programs which are not currently inuse, the server process 452 generates a table or other data structurethat cross-references time-of-day with the channels and/or programspredicted to be viewed. Such a table may be organized in a mannersimilar to FIG. 3, except the generated table represents predictions ofwhich channels/programs will likely be requested during a timeslot,instead of the channels/programs that were actually requested for ahistorical period.

It will be appreciated that the predictions associated with theaforementioned table or other data structure may also have other dataassociated with them that may be useful for a variety of purposes. Forexample, one variant of the invention uses the aforementioned serverprocess 452 to also generate, where sufficient information is available,a confidence rating or probability relating to the estimated accuracy ofthe prediction. For example, where the predicted behavior is based onone piece of historical data, the confidence might be significantlylower than if the prediction was based on numerous data points (e.g.,data from many days at that same time, etc.). As another alternative, astatistical variance (σ²) or standard deviation (σ) may be calculatedfor past predictions (i.e., how well, historically speaking, have theserver processes' predictions correlated with actual user behavior forthe prediction of interest), and the results used to generate aprobability or confidence metric. As yet another alternative, statisticscan be generated for how well all or a subset of such predictions (as awhole) have correlated to actual behavior.

Ranges of the resulting confidence/probability metrics can be assignedto various actions as well. For example, one rule might state that anyconfidence values below 25% (0-100% scale) will be discarded and notused for further processing, or alternatively will cause the serverprocess 452 to return and look for more historical data to analyzerelating to the particular time slot/event/program of interest, therebyattempting to “force” the confidence in the prediction to an acceptablelevel.

It will also be appreciated that such confidence/probability values ormetrics need not be deterministic or based on linear variables. Forexample, in one alternative approach, the results are converted into afuzzy logic domain (e.g., “high”, “medium”, “low”, or the like) andrendered in a human-readable form (e.g., XML metadata) so that, interalia, they are also meaningful to and readily appreciated by humans. Aperson can e.g., obtain a printout of the table or other data structureand immediately see where the high confidence predictions lie. Amultidimensional “contour” plot may also be generated if desired for ayet more intuitive display. Human inductive reasoning (“patternrecognition”) can be a very effective tool in this regard; i.e.,identifying regions of the plot with high confidence, and as a resultselectively focusing the server process

Myriad other approaches to ancillary or related data processing andgeneration will be recognized by those of ordinary skill in the artsprovided the present disclosure.

Information concerning channels/programs not currently in use may beused by the server process in deciding, for example, to override oradjust predictions generated by the historical information. For example,the historical information may indicate that a certain program hastypically been requested at the current time of day. However, the serverprocess may have identified that this program has not been requested forsome time and has not currently been requested. Alternatively, theserver process may determine that the aforementioned program istopically inapplicable to this particular time slot (e.g., the SuperBowl has always been slotted for this period in past years, but thisyear the NFL has moved the game to another day or time slot). Therefore,the server process may decide to override or modify the indication fromthe historical information that that program will be requested in theto-be-predicted time interval, and instead, decide that it will not berequested in the to-be-predicted time interval. Herein lies asignificant facet of the exemplary process of the present invention; theaforementioned table or other data structure may be based on either“positive” data (i.e., what it is predicted that people will berequesting), “negative” data (i.e., what it is predicted that peoplewill not be requesting), or even combinations thereof. Such combinationsmay be for example either (i) inter-prediction (i.e., one prediction fora first time slot being based on positive data, and another predictionfor a second different time slot being based on negative data), or (ii)intra-prediction (i.e., one prediction for a first time slot being basedon both positive data and negative data, effectively indicating “we havean idea what it might be, and we know definitely what it will not be”).

In another example, suppose that after historical information isanalyzed, a prediction is made that a certain program will likely berequested at a certain time. It is then discovered that the program is aone-hour program that began a half an hour ago—thus, when the programbegan, it was not requested, and the program currently is still notbeing requested. In general, it is known that with this particularprogram, if a viewer has not requested it in the first half-hour, it isunlikely that the viewer will request it in the second half-hour. Inthese situations, the server process may decide against making thatprogram available in the next half-hour, as it is unlikely to berequested according to this rule. Put differently, in certainsituations, more relevant historical data (e.g., recent program viewinghistory) may be given more weight than less relevant data (e.g.,“ancient history”) in deciding which content should be made available.

Similarly, suppose the server process determines that a program has beenrequested and has been in use for some time. The server process maydecide to continue to providing this program to subscribers, even whenhistorical information indicates that this program should not be indemand at the current time.

Note that as previously noted, in various embodiments of the invention,the prediction model may be updated by comparing programs currently inuse to those which are predicted to be in use. One example of this isaltering the range that historical data is taken into account. Thiscould occur, for instance, when the server process determines thatcertain “outages” (times when programming is not available to somepercentage of subscribers) have exceeded an acceptable threshold (e.g.,in hours per year). In these situations, the server process may in oneembodiment analyze the historical data record (where it is assumed thatthe historical record contains both actual and predicted program usagedata) to find a better interval over which to consider the historicaldata. In one variant, an algorithm that calculates a certain outage (orblocking) probability for various intervals of time until an appropriateinterval is identified is utilized by the server process; this approachcan be used to inter alia achieve a desired outage probability.Subsequent predictions of demand for the program or programs associatedwith that historical data may then use this interval. Adjustments to theinterval may subsequently be made. Those skilled in the art ofstatistical prediction will be able to derive and implement theforegoing algorithm, as well as myriad other ways to adjust theprediction model over time consistent with the invention when providedthe present disclosure.

According to other embodiments, various ad hoc or anecdotal adjustmentsmay also be employed (e.g., adjustments based on service operatorobservations). For example, in certain instances, operators may noticethat a program has become popular “lately,” or popular as of a certaindate. In other instances, a new program scheduled to commence on acertain date may be expected to attract large viewership from theoutset. Thus, after an adjustment is implemented, the historical data isanalyzed from these respective dates. This is advantageous becausepredictions made using older intervals are often likely to be lessaccurate than predictions made using more recent intervals.

Analysis of historical viewership data may also be used to uncoverhelpful periodicities in the data. Seasonal variations in historicalviewership data may be revealed from the analysis and used to accuratelypredict future requests for that programming. For example, summerviewing patterns may be quite different from winter viewing patterns;historical viewership data input to the prediction algorithm of theserver process 452 may thus be separate for each season.

As another example, analysis of historical data may reveal thatprogramming requests for a given Thursday evening may be more accuratelypredicted by employing historical data from an equivalent Thursday oneyear ago as opposed to the Thursday of last week, or a recent set ofprior Thursdays. This could occur if, for example, it is discovered thatcertain days of the year (e.g., Super Bowl Sunday, New Years Eve, LaborDay, etc.) exhibit predictable viewing patterns which are best measuredfrom the patterns exhibited during the same day from prior years.

As described in co-assigned application Ser. No. 11/243,720, entitled“Self-monitoring and Optimizing Network Apparatus and Methods”,previously incorporated herein, in some embodiments, the server process452 may know the viewing history (possibly including current program(s)being viewed) of the user terminals. This knowledge may be provided tothe server process by service provider operator input, from dataobtained directly from the delivery network, and/or by the serverprocess polling the user terminals to determine their viewing status.With this knowledge, the server process 452 will predict that at acertain time bandwidth may be freed up for reallocation. For instance,suppose the server process predicts that at a certain time the viewersof a certain channel within a certain service group will cease viewingthat channel. The server process may then remove that program channelfrom service at the appropriate time and allocate the released bandwidthto another program. Conversely, if the server process predicts that userterminals may come online at a certain time, it will predictively addprograms to the service group when those programs are expected to berequested.

Referring again to FIG. 2 a, at step 228, the server process configuresthe system (for example using methods described in co-assignedapplication Ser. No. 11/243,720, entitled “Self-monitoring andOptimizing Network Apparatus and Methods,”) to deliver the designatedcontent based upon the table of program channels predicted to be indemand and based upon the currently available bandwidth. In one variant,this comprises as many programs as will fill the available bandwidth. Inother variants, this comprises as many programs as will fill a portionof the available bandwidth, thus setting aside or reserving portions ofthe bandwidth for other related services.

At step 230, the server process determines whether the bandwidthrequirements of the requested programs exceed the capacity of theavailable current bandwidth, or vice versa. Both possibilities of thisdecision are discussed in detail below.

In the event that the available bandwidth capacity exceeds the sum ofthe bandwidth requirements of the requested programs, the server processat step 232 removes lower quality versions of programs, and at step 234,delivers higher quality versions of these same programs. Note that thedecision to replace lower quality programs with higher quality programsmay depend upon whether the subscribers who are currently viewing thelower quality programs have CPEs capable of processing the higherquality versions of the programs. For example, to change a currentstream from an SD video stream to its HD version, it may be necessarythat all CPEs currently receiving that SD stream are capable ofprocessing the HD version of that stream. This processing may includecarrying the HD resolution through the CPE and providing an HDresolution output capable of driving an HD display device.Alternatively, this processing may include downconverting the HDresolution to SD resolution and providing an SD resolution output todrive an SD display.

Some variants on this comprise utilizing all or part of the excessbandwidth to provide “extra services,” as described in co-assignedapplication Ser. No. 11/800,093 entitled “METHODS AND APPARATUS FORPREDICTIVE CAPACITY ALLOCATION (previously mentioned and incorporated byreference). In one of these variants, the server process bases itsdecision of whether to replace lower quality programming with higherquality programming and/or extra services upon whether the currentbandwidth surplus is expected to persist for a certain period of time(or meet other designated criteria, such as not exceeding a certainlevel of bandwidth variability for a period of time). This isaccomplished by projecting the bandwidth required for a particularbroadcast some time into the future. Thus, the server process uses thehistorical information to predict whether there is sufficient bandwidthto accommodate a higher quality program, and whether that bandwidth islikely to persist for all or most of a target broadcast period. This isadvantageous because it is often undesirable to change from higher tolower quality and vice versa frequently during the actual broadcast of aprogram in that reduced subscriber satisfaction may result fromperceived changes in video quality or even short interruptions duringthe switchover (discontinuities).

In the event that the sum of the bandwidth requirements of the requestedprograms exceeds the currently available bandwidth, as per step 236, theserver process restricts the availability of high bandwidth programs.This can be accomplished in a variety of ways—for instance, by removingthe high quality programs from the broadcast stream, or alternatively,by replacing high quality programs with their lower quality equivalents,as per step 238. For instance, quality differences may result fromdifferences in compression or encoding (e.g., HD versus SD, MPEG2 versusMPEG4, etc.). Thus, if certain subscribers are currently requesting HDprogram streams, but the server process has predicted that the requiredbandwidth will soon exceed the available current bandwidth, then theserver may schedule a switchover of one or more of those users to aversion of the program broadcast in SD (or a compression schemeutilizing a different bit rate) during the time that the requiredbandwidth is predicted to exceed the available bandwidth. For example, atranscoded or transrated version of the desired content may be supplied.Exemplary methods and apparatus for transcoding/transrating aredescribed in co-owned and co-pending U.S. patent application Ser. No.11/726,095 filed Mar. 20, 2007 and entitled “METHOD AND APPARATUS FORCONTENT DELIVERY AND REPLACEMENT IN A NETWORK”, which is incorporatedherein by reference in its entirety, although other approaches may beused with equal success consistent with the present invention.

Note also that the number of subscribers scheduled to be switched overto SD versions of a particular program may be determined according tothe difference between the total predicted input bit rate requirementand total output bit rate capability (e.g., if a shortfall of 24 Mbps inoutput bit rate availability is predicted, then the server process 452may reconfigure the system to switch 2 users from 19 Mbps HD streams to7 Mbps SD streams carrying the same programming content). The decisionto switch a program from HD to SD may depend on whether some or all ofthe CPEs currently receiving that program are capable of upconvertingfrom SD to HD resolution. Upconverting may include, for instance,increasing the number if pixels in a video image by resampling thatimage, followed by sharpening the edges of objects within that image.These and other upconversion techniques are well known to those ofordinary skill in the art.

As mentioned previously, the server process may also be adapted toidentify the capabilities of individual CPE. According to theseembodiments, the server process uses knowledge of CPE capabilities todetermine which versions of programs to convey to the CPE. For example,the server process may receive capability data indicating the presenceof certain CPE which are only capable of ingesting video data at acertain bit rate (for example, portable devices). This bit rate may besubstantially lower than the maximum bit rate at which a set top box(STB) CPE is able to ingest video data. Thus, the server process 452will determine the content provided to the CPEs based upon thiscapability data.

The capability data may be transferred to the server process atdifferent times according to various embodiments. For example, accordingto one embodiment, a CPE provides its capabilities to the server processas part of the system initialization procedure (for example, immediatelyafter the CPE is powered up, or new software installed). According toother embodiments, a CPE waits for a user action (such as a button pushon the remote control) before sending data describing its capabilitiesto the server process. This is useful, for example, in avoiding thosesituations where all CPEs in a subnetwork attempt to send datadescribing their capabilities to the server process simultaneously (suchas immediately after a power outage).

In yet another embodiment, the CPE issues its relevant specifications aspart of a “capabilities” or other message sent from the CPE in responseto a ping or downstream communication (e.g., from the server process).

In yet a further embodiment, the various CPE in the network can bescheduled into a multiple access scheme (e.g., TDMA, randomized,CSMA/CD, FDMA etc.) so as to avoid or at least mitigate theaforementioned upstream “flood” of capabilities messages.

In some variants, the server process receives the decoding capabilitiesof the CPEs in the service group. With this knowledge, the serverprocess predicts which times bandwidth can be freed up for reallocation.For example, suppose the server process predictively determines that ata certain time all viewers of a certain channel whose terminals haveonly MPEG2 decoding capability will cease viewing that program channel.The server process may then switch the input of that program channelfrom its MPEG2 version to its MPEG4 AVC version, possibly achieving a50% reduction in the bandwidth required to deliver that content, butwith no loss in perceived quality. Conversely, the server process maypredict that user terminals with only MPEG2 capability may come onlineat a certain time, and thus switch from the MPEG4 AVC version of aprogram to its MPEG2 version in order to support those MPEG2 terminals.

In some variants, the server process may know the display capabilitiesof the user terminals, and use this knowledge to predictively provideprograms at a lower or higher bit rates, compressed using the sameencoding standard. Thus, if the server process predicts that at acertain time a number of portable devices will begin viewing a certainprogram, the server process may switch the set of user terminals fromreceiving a version of a program encoded using MPEG4 AVC at 2 Mb/s toreceiving a version encoded using MPEG4 AVC at 200 kb/s.

In other variants, the server process 452 may know the storagecapabilities of the CPEs and use this knowledge to predictively provideprograms at a lower or higher bit rates, depending upon thosecapabilities. For example, a CPE with storage capability may be able toingest programs at a bit rate much lower than the bit rate which wouldbe used for streaming programs to that CPE in real time. That CPE maythen replay programs ingested at low bit rates at higher bit rates forpurposes of real time display of those programs. Alternatively, programsmay be ingested by the CPE at bit rates higher than bit rates requiredfor real-time display of those programs, allowing transient periods ofhigher bandwidth availability to be used to provide content. In a thirdset of variants, the CPE may transfer one or more of programs to otherdevices at bit rates either above or below real time display bit rates.

In addition to those already described, the present invention affordsother benefits as well. Specifically, in one aspect, the switchinglatency previously described herein (e.g., that associated with switchedarchitecture networks) is significantly reduced by implementing theserver process 452 of the present invention, since (i) the CPE can use alocal channel map versus one maintained by the switching hub or othernetwork entity, and (ii) in many cases, no server switching operation atthe hub is required (i.e., the requested program is already beingpredictively delivered; it is just not presently tuned to by the CPE).The CPE need merely tune to the correct QAM where the (predictively)delivered and now requested content is streaming, and recover thatstream.

Another benefit provided by the invention is the reduction in servicecalls (e.g., “truck rolls” and the like) needed based on non-responsiveCPE. As previously discussed, a certain percentage of CPE within thesubscriber will at any given time be “non-responsive” due to theirinability to communicate with upstream entities. The non-responsivedevices may also change with time, but in number and identity.Advantageously, the present invention affords a mechanism by whichnon-responsive CPE can receive newly requested program streams that wereotherwise not being viewed by any subscribers. Specifically, oneembodiment of the invention uses a portion of the available downstreambandwidth to deliver program streams that are being requested at thattime (i.e., that one or more subscribers are tuned to), and theremaining bandwidth or at least portions thereof to predictively deliverprogram streams that are not being requested or viewed at that time. Asshown in FIG. 2 b, when a subscriber inserts a channel change request toa program stream (step 272), the CPE logic first consults the localchannel map (step 274) to determine if that program stream is present onone of the current QAMs. If so, then a signal is sent to the tunerresource of the CPE 106 per step 276 to tune to the appropriate QAM,which is then recovered from the QAM transport multiplex using theprogram PID, and demodulated/decoded (step 278).

Alternatively, if the requested program stream is not present on anycurrent QAM, then an upstream message is generated and sent from the CPEper step 280 to the switch process (e.g., BSA server) to switch in therequested program stream, and generate an updated channel map. Clearly,in the case of a non-responding CPE 106, this last sequence of sendingan upstream message cannot occur, and hence the subscriber's channelchange request will be effectively ignored unless the requested streamis on an existing QAM. By predictively and “intelligently” deliveringunrequested programs via unused bandwidth using the server process 452of the present invention, the likelihood that a subscriber's request canbe serviced, even when the CPE is non-responsive, increasessignificantly. Specifically, since this technique is predictive, thechannel is added in advance, so the CPE 106 is requesting a channel thathas been predictively added. The tuning information needed by the CPE totune the channel can be obtained by for instance the CPE reading themini-carousel stream that is already present, which means that a reversecommunication channel is not required.

Clearly, since the predictions generated by the server process 452 arelikely to never be completely accurate, there will be some cases wherethe requested program is not being predictively delivered. In this case,the BSA network operates effectively as it would under normalcircumstances. However, if the predictions generated by the serverprocess are even modestly accurate, benefits in terms of reduced latencyand continued use of “non-responding” devices are realized.

It will also be appreciated that while the foregoing embodiments of theinvention are described in the context of a predictive model (i.e., onewhere a prediction is generated based on inter alia historicalinformation of relevance), the invention may also be used consistentwith a speculative model, such as where speculative decisions on programinsertion are made according to non-historical analysis. For instance, anon-requested program stream might be selected for insertion based onits topical correlation to other content requested, or deliveryaccording to a predetermined relationship or temporal order (e.g.,“ensemble” delivery). Alternatively, a statistical algorithm might beimposed, so that each program is at least statistically picked forinsertion at a prescribed frequency (independent of any historicaldemand analysis). As yet another option, a randomized approach may beemployed. Myriad other speculative approaches may be used consistentwith the invention, whether alone or in conjunction with the predictiveapproaches previously described.

In addition to predictive or speculative insertion or scheduling ofdifferent program streams as previously described, the exemplary serverprocess 452 is also configured to perform periodic or ongoing evaluationof programs that are being delivered in order to determine if deletion(removal) is appropriate. Specifically, in one variant, the serverprocess determines the programs that have been requested, and which havebeen in use for a prescribed period of time, for the purpose ofdetermining whether to continue their delivery, even when historicalinformation indicates that such programs should not be in demand at thecurrent time. Hence, reclamation or deletion decisions are tempered withreal-time data relating to the actual use of a given program stream. Forinstance, if the predictive model indicates that Program X should not berequested at a given point in time, and the duration of one or moreviewing events of Program X during that time are very short (e.g., a fewseconds or less), it might be concluded that these viewing events weremerely transitory, such as channel-hopping across this channel orinadvertent selection by a viewer. Accordingly, the server process 452might select Program X for reclamation on the likelihood that it willnot be selected again. Alternatively, if the viewing time of Program Xis substantial and/or repeated then it can be surmised that for whateverreason, the historically-based predictive model is wrong.

The server process 452 may also be configured to use historical or otherinformation (such as e.g., network operational or maintenance updates,etc.) to predict whether there will be sufficient bandwidth toaccommodate transmission of a higher quality version of a program basedon whether such bandwidth is likely persist for all or most of thetarget broadcast period. These determinations are useful for reducingthe amount of switching from SD to HD (and vice versa) during the middleof broadcasts, which is undesirable since the user might be able toperceive the switching transient or reduction in visual quality. Aspreviously referenced, the server process 452 determines the currentlyavailable bandwidth using for instance the process described inco-assigned application Ser. No. 11/800,093 entitled “METHODS ANDAPPARATUS FOR PREDICTIVE CAPACITY ALLOCATION”, previously incorporatedherein, although other approaches may be used as well.

Another benefit of the approach of the present invention relates tounloading the switch/server during large transients or unplanned events(and recovery therefrom). Specifically, switched systems have a finitebinding rate; i.e., rate at which streams can be added or bound tomultiplex transports on a given QAM. For instance, if a service outageoccurs, recovery from the outage will almost necessarily create acondition where the switch is flooded with requests for new streams, theaddition of which are limited by the aforementioned finite binding rate.By implementing the techniques of the present invention, such largetransients are effectively “smoothed out”, since predictive delivery ofat least some of the streams that would be requested during such arecovery will already be bound to the QAM(s), and hence the requestingsubscriber's CPE 106 need only search its local channel map and tune tothe appropriate QAM (versus generating an upstream communication causingthe switch to respond). Fewer upstream communications will also beneeded, and hence “log-jams” of switching requests will be significantlymitigated during such periods.

Software Architecture and Associated Methods—

FIG. 4 is a block diagram illustrating one exemplary BSA networktopology and associated software that can be used in conjunction withthe present invention. While shown in the context of a BSA network ofthe type previously described with respect to FIG. 1 c herein, it willbe recognized that the server process and in fact other aspects of theinvention may be used with equal success with other types of networks,including without limitation session-based VOD delivery networks.

As shown in FIG. 4, a cable headend 150 supplies cable content to one ormore cable hubs 410. In turn, each of these cable hubs 410 suppliescontent to a plurality of CPEs 106 residing in an associated subnetwork.

As mentioned earlier, in standard BSA, only a subset of availableprogramming is provided to each CPE 106 in order to preserve bandwidth.As such, unrequested channels are typically not included within theprovided subset. However, in cases where content from these channels issubsequently requested by a subscriber, these channels are switched backon. In a similar manner, channels which are no longer requested bysubscribers are switched off.

In accordance with various embodiments, a server process 452 resideswithin one or more nodes upstream from the CPEs 106. In one variant, aserver process 452 is resident within a cable headend 150. In othervariants, such as the one depicted in FIG. 4, a server process 452resides in one or more cable hubs 410. In still other variants, a serverprocess 452 resides both in one or more cable hubs 410 and the cableheadend 150.

Also shown in FIG. 4 is an optional BSA manager process 450 is utilizedat the headend 150. This process, inter alia, coordinates activity amongthe various different hub server processes 452, and provides aninterface with other headend processes that may be required (e.g.,provisioning, billing, etc.). The headend BSA process 450 may alsooptionally comprise a portion of a distributed application (DA), whereinprocessing necessary to support the functions of the server process 452described herein such as prediction generation, historical dataanalysis, trend or statistical analysis, etc. may be performed at theheadend 150 and delivered to the server process 452 at the hub (or viceversa), so as to either pre-process content for e.g., reduced latency,or offload processing overhead to one software process or the other.

Each server process 452 receives data from one or more CPE 106, andsubsequently determines the appropriate content to transmit to the CPE106 based upon this data. This is best illustrated by the sequencediagram of FIG. 5 discussed below.

In FIG. 5, the server process 452 receives viewership data 502 from oneor more CPE 106. According to one embodiment, the viewership data 502comprises the programs watched at various times throughout the day.According to other embodiments, the viewership data 502 comprises thechannels watched at various times of the day. Other types of data (e.g.,CPE power status, software versions installed, etc.) useful to theserver process 452 may also be delivered. Any number of data structuresmay be used to organize this data in accordance with the scope of thepresent invention. Thus, tables, graphs, trees, lists, records, ormyriad other data structures or combinations thereof may be used forthis purpose.

Optionally, as according to certain embodiments, the capability data 504of each CPE 106 may also be received at the server process 452.Generally, this capability data 504 comprises various characteristics ofthe CPE 106—for example, the data 504 may comprise the tuner,demodulation, encryption/security, display, storage, transmission,network, and decoding capabilities of a given CPE 106, including e.g.,whether the CPE has HD or SD/HD upconversion capabilities.

Note that these capabilities may also include any number of factors,measurements, or specifications. For instance, display capabilities maycomprise the video resolutions and bit rates supported by a given CPE106. Decoding capabilities may comprise the codecs currently installedon a given CPE 106. Storage capabilities may comprise the capacity of agiven CPE 106 to store data, etc., such as on an HDD.

Data relating to the security environment (e.g., trusted or authorizedservice domain, secure microprocessor (SM), etc.) of the CPE 106 orother connected devices may also be provided. See, e.g., co-owned andco-pending U.S. patent application Ser. No. 11/584,208 filed Oct. 20,2006 and entitled “DOWNLOADABLE SECURITY AND PROTECTION METHODS ANDAPPARATUS”, which is incorporated herein by reference in its entirety,which describes exemplary downloadable security apparatus and methods,and data relating thereto.

Just as with the viewership data 502, any data structure may be used toorganize the capability data 504 in accordance with the scope of thepresent invention (including tables, graphs, trees, records, lists, andcombinations thereof). According to one embodiment, the capability data504 comprises a code, serial number, and/or model number of a CPE 106.The server process 452 is responsible for deriving the capabilities ofthe CPE 106 based on this code or serial/model number. This isimplemented, for example, by referencing the model number to a tablecontaining the capabilities of each CPE model 106. Advantageously, thisallows for most of the capability information to be stored remotely fromthe CPEs 106.

Note also that in FIG. 5, the viewership data 502 for each CPE 106 isreceived before the capability data 504. This ordering, however, is notstrictly necessary. In some embodiments, the capability data 504 isreceived before the viewership data 502. In other embodiments, theviewership data 502 and the capability data 504 are transmitted to theserver process 452 as a single stream or ensemble of data. Thus, theordering of when certain data is transferred can be adjusted in myriaddifferent ways according to the desired implementation.

Once the viewership data 502 (and optionally, the capability data 504)for each CPE 106 has been received at the server process 452, the serverprocess then determines the appropriate content 506 to be broadcast tothe associated subnetwork. According to one embodiment, this isaccomplished by aggregating the viewership data 502 together,identifying patterns in this aggregated data, and then deciding thecontent 506 to broadcast based upon these patterns. According to otherembodiments, this is accomplished by identifying those programs whichhave not been requested by any CPE 106 over a certain measured intervaland removing such programs from the provided content stream 506.

In the embodiments where capability data 504 has been transmitted to theserver process 452, the capability data 504 may be used to determine,for example, the optimal compression scheme for a given program, oroptimal broadcast quality. For example, the server process 452 maydecide to replace a low-definition version of a program with ahigh-definition version of the same program if all CPE 106 in theassociated subnetwork have the capability to support a high definitionbroadcast. In another instance, where users with CPE 106 supporting onlyMPEG2 broadcasts have currently tuned to a channel currently beingbroadcast in MPEG4, the server process 452 may decide it needs toreplace the MPEG4 encoded program with an MPEG2 equivalent. As yetanother option, migration of certain CPE from one QAM to another (e.g.,from one version of a program being delivered in a first format toanother version of the same program in another format) may be performedbased on the data. Note that decisions based upon capability data arealso based upon available bandwidth according to many embodiments of theinvention.

The present invention may accordingly be configured to supportpredictive forced delivery of a certain type of copy of a program, asdescribed e.g., in co-assigned U.S. patent application Ser. No.11/881,034 entitled “METHODS AND APPARATUS FOR FORMAT SELECTION FORNETWORK OPTIMIZATION” filed Jul. 24, 2007 and incorporated by referenceherein in its entirety. The foregoing disclosure teaches, inter alia,methods and apparatus for optimizing network bandwidth utilization bydelivering to users only the minimum number of programs required byservice provider policies. These methods and apparatus are useful so asto minimize bandwidth consumption while also maximizing subscribersatisfaction and service level (e.g., video and/or audio quality). Thedisclosed methods and apparatus are especially useful when programmingconsumption changes drastically, for example during so-called“primetime” viewing, as well as when programming bandwidth (ascontrasted from consumption) varies dramatically, for instance, betweendelivery of standard definition and high definition programming. In oneexemplary embodiment, a “forced delivery” approach is employed, whereina copy of a program of a certain type is selected and delivered via oneor more program channels. For example, a given program may be availablein both a standard definition (SD) format and high definition (HD)format. Furthermore, different versions, such as MPEG2 and MPEG4 audiovideo control of SD and/or HD formats of programs may be available. Ifit is known that a group of user CPE in the service area are HD-capable,then the service may force the CPE of those users to tune to anyavailable HD versions of programs to reduce the instances of duplicateprogramming, by satisfying SD programming requests using HD programming.Conversely, in times of constrained bandwidth, the SD version of aprogram may be delivered when an HD program is requested. If the user'sCPE has up-conversion capability, the user may still advantageouslyexperience “HD-quality” video, even though the CPE input has beenswitched to SD. As other alternatives, a technique know as “re-binding”,or alternatively a payload substitution, may be used in place of aforced re-tuning consistent with the invention. In other embodiments,up-rating or down-rating of one or more program streams (i.e., changingthe bitrate up or down) can be used to temporarily or even indefinitelyaccommodate periods of increased or reduced network capacity,respectively. This “trans-rating” may be accomplished dynamically andaccording to any number of different implementation schemes. Forexample, in one variant of the invention, the system cannot onlydown-rate and up-rate content bitrates, but also has knowledge of whento perform such rate changes (such as based on e.g., a priori knowledgeof content bitrate profiles via metadata or the like, or predictiveanalysis of historical tuning and/or bandwidth consumption data).Moreover, the system can intelligently select content encoding orresolution formats to switch to when bitrate or other changes areneeded. These rate and/or format changes can be inserted dynamically;i.e., during subscriber viewing.

Accordingly, when these techniques of format selection, selective“steering” of viewers to existing QAMs, re-binding, and/or transratingare employed with the predictive selection techniques of the presentinvention, a powerful combination results. Specifically, the serverprocess 452 according to such a configuration can not only select whichprograms should be predictively inserted at any given time (based one.g., historical data), but can also select which QAM the program streamis bound to, what format the bound stream should be delivered in (e.g.,HD or SD), and which subscribers should be switched onto that streamwhen multiple requests for it actually do arise. Such capability isheretofore unknown in the prior art.

It will be appreciated that certain individuals (or for that mattercertain demographic/geographic/psychographic/logical slices of thesubscriber pool) may exhibit very predictable or patterned behavior,which can also be identified by way of various mechanisms. For example,in one variant of the present invention, the server process 452 isadapted to utilize the anonymous hashed TUNER ID, TUNER USE or MAC IDvariables set forth in co-owned and co-pending U.S. patent applicationSer. No. 11/186,452 filed Jul. 20, 2005 and entitled “METHOD ANDAPPARATUS FOR BOUNDARY-BASED NETWORK OPERATION”, which is incorporatedherein by reference in its entirety. This application discloses, interalia, the ability to individually and specifically target user CPE(e.g., their tuner stages) within portions of the network, so thatvirtual boundaries or subsets within the subscriber base are formed,such as where subscribers in different geographical regions requiredifferent programming. Specifically, in the context of the presentinvention, the server historical database can be maintained on aper-user basis if desired, with entries in the database being logicallycoupled to a specific subscriber's hashed TUNER ID, etc. In this way,the MSO can maintain anonymous historical data on a given subscriber'stuning habits, which can then be used by the server process 452 toadjust its behavior as described elsewhere herein. For example, if thesubscriber associated with hashed TUNER ID 1011101011001101 (exemplarybinary hashed format) religiously views a certain program every Thursdaynight at 9:00 pm, this information can be used by the server process inits anticipatory decisions on program (and optionally bandwidth)allocation or program delivery to the hub servicing thatsubscriber/TUNER ID. One such use may comprise segregating or groupingsuch users into a given service group, which would characteristicallyhave very low variability.

Moreover, using this approach, the MSO or other network operator can, inthe context of the present invention, readily adjust the selectedsubscriber base from which it gathers data based on geography,demographics, and/or psychographics, all in a completely anonymousfashion. This capability provides the MSO with a sophisticated tool bywhich they can examine individual “slices” of the subscriber pool in ananonymous and substantially real-time fashion to better evaluateprospective anticipatory program stream shaping by the intelligencealgorithms of the server process 452.

It can be appreciated that while the foregoing embodiments contemplateidentification of viewership data (e.g., which channels or programs werewatched when) on an individual or per-viewer basis, this is by no meansa requirement of practicing the invention. For example, in one variant,viewership data for individual viewers within a given service group orsubnetwork portion is received and stored on a per-viewer basis, andthen subsequently used by the server process 452 to make predictivedecisions regarding content insertion for that service group orsubnetwork portion. This approach generally produces the highestpredictive accuracy, since the data on which the predictive decisionsare made is data from those who will ultimately use the predictivelyinserted content; i.e., the data generator and user are highlycorrelated.

However, in other variants, such a high level of correlation need not bemaintained, especially where other operational or business goals must beconsidered, or where it has been demonstrated that a particular metricor parameter of interest is not well correlated or independent of thedata source. For example, it may be known that a given percentage ofviewers will tune into or request an sporting event at a certain timeirrespective of which service group, geographic location, orsubscription level they belong to. Hence, in such a case, there is norequirement that the server process 452 access and evaluate data for theparticular service group being served, since in effect the answer willbe the same regardless of which historical data is analyzed.Accordingly, in one embodiment of the invention, the server process 452is adapted to look for artifacts, patterns or correlations within thedata not only on a per-service group or per-subnetwork basis, but alsoacross the broader database of viewership data so as to identify “globalbehaviors” or patterns. This analysis can be performed in thebackground, such as periodically or when new viewership data updates arereceived. This sort of pre-processing relieves the server process 452 insome cases from having to do more intensive “on the fly” processing,which may feasibly introduce some latency by delaying decisions onpredictive insertion.

FIG. 6 is a flow diagram illustrating a method of selecting content forinclusion within a content stream 606 according to one embodiment of thepresent invention. First, viewership data is collected from each CPE 106in a subnetwork at step 602 (or at least a subset thereof). Optionally,at step 604, the capabilities of each CPE 106 may also be collected.

The viewership data is then aggregated at step 606. This aggregationprocess may occur in a myriad number of ways and over any number ofdesignated intervals. According to certain embodiments, the methodaggregates one or more archived files (preferably stored within the nodecomprising a server process 452) and the viewership data associated witheach CPE 106. In one variant, the archived file reflects the viewinghistories of all or subsets of CPE 106 in a subnetwork over an extendedperiod of time (for example, the viewing histories of all subscribers inthe subnetwork over the last three years), while the viewership data ofeach CPE 106 reflects the viewing history of one particular CPE 106 overa recent period of time (for example, the viewing history of the lasttwo weeks). A simple aggregation process according to one embodiment isillustrated in FIGS. 7 and 8, discussed in further detail subsequentlyherein.

In order to determine the appropriate content stream 606 to bebroadcast, the exemplary method of FIG. 6 steps through every availableprogram (or designated subsets of the available programs) over a giveninterval, and determines if that program was requested on a prioroccasion. This is illustrated in FIG. 6 as steps 508-512. If the programwas requested, it is included in the content stream 506 at step 614.When the list of programs to be evaluated has finally been exhausted,the process then terminates.

Note that in more advanced embodiments, multiple iterations or “case”specific logic is used to determine the appropriate content 506 tobroadcast to the subnetwork. These embodiments are particularly usefulwhen cable channels change their program lineups and reschedule programsfrom one time slot to another based on factors such as popularity or inorder to create time for new shows. These embodiments handle situationswhere subscribers exhibit proclivities to request programs that arebroadcast within a certain a time slot (as opposed requesting a specificprogram whenever it is broadcast). For example, a certain set ofsubscribers may watch any content broadcast at 7:00 p.m., after thesesubscribers get home from work, but nothing at 2:00 a.m., when theysleeping. In these situations, one case or method may create predictionsbased on the recurring programs (programs whose time slots have notchanged from the last recorded period), and a separate case or methodmay handle situations where programs have been rescheduled to a new timeslot. The resulting predictions will usually be more accurate thanpredictions based on a universal or non-case specific approach, sincethe logic creating the predictions has taken the aforementionedproclivities into account.

New programs also require special consideration. If a program is new,past viewing patterns generally cannot be accurately relied upon topredict whether the program will be requested by a certain set ofsubscribers. According to some embodiments of the invention, newprograms will default to a certain automatic setting. In some variants,new programs default to being included in the delivered content stream,while in other variants, new programs default to being excluded from thecontent stream. Note also that while there is no directly applicablehistory or patterns for a “new” program, there may be closely related orsimilar genre programs whose historical data is useful. For instance,while “Survivor: [Location 5]” may be new, it still may bear significanttangency and relation to “Survivor: [Locations 1-4]”, and hence the datafor the latter may be very relevant, at least for a first predictionapproximation, to the former.

Furthermore, according to some embodiments, titles and/or descriptivecodes are used to match up scheduled programs to programs broadcast fromprior periods for the purposes of determining whether a scheduledprogram is to be considered “new”, and/or what sources of historicaldata may be applicable for purposes of prediction. For example, in onevariant, metadata associated with a particular program is evaluated by ahuman (or search engine) to find related concepts. For instance, themovie “Alien versus Predator” might have metadata characterizing themovie as “aliens/outer space” and “science fiction”, and this could bematched to historical data for other programs that are classified asboth relating to aliens/outer space and science fiction. In otherembodiments, each program comprises an encoding, metadata, flag,register field, or other marker indicating whether or not the program is“new.” Programs may also be rated or evaluated on a linear or otherscale as to their “newness” (i.e., similarity to other programs that arenot identical). For example, a 1 to 10 rating system could be applied,the rating assigned either by a human (e.g., heuristically) oralgorithmically based on predetermined criteria such as for example thenumber of metadata matches, similarity of source/topic, etc. Any numberof ways of evaluating two or more programs for similarity can beappreciated by those of ordinary skill, and accordingly are notdescribed further herein.

In various embodiments, predictions concerning whether a new programwill be requested depend on a variety of factors, such as withoutlimitation scheduled time slot, channel popularity, cast, rating, orprogram content. For example, an analysis of certain criteria mayindicate that new program X on channel 21 at 7:00 pm is likely to berequested, but new program Y on channel 843 at 2:00 am is not likely tobe requested. These embodiments advantageously allow separatepredictions to be made for each program, which in turn yields a moreaccurate prediction model.

FIG. 7 is a flow diagram illustrating one embodiment of a dataaggregation method useful with the present invention. In step 702, alist of all programs available over a designated period is generated. Insome embodiments, this list is a standard cable channel grid or cableguide (such as from the EPG). In other embodiments, an algorithmgenerates this list upon requesting schedules from one or more remotesources.

In step 704, a list of CPE 106 in a given network portion (subnetwork)is retrieved. In some embodiments, the list comprises all CPE 106residing in the designated subnetwork. In other embodiments, the listcomprises a subset of all CPE 106 in the subnetwork; for example, onlythose CPE 106 which are currently powered on with an active networkconnection. Moreover, in some embodiments, the aforementioned list isstored locally within a node comprising a server process 452. In otherembodiments, the list is formed by having a remote node send a signal(such as a ping) to all CPE 106 in the subnetwork. In still otherembodiments, the list is formed by having a remote node receive signalsfrom all CPE 106 that have registered during an initialization or bootupprocess. Yet other approaches for assembling the list will beappreciated by those of ordinary skill.

The method of FIG. 7 steps through each CPE 106 in the list until thelist is completed. This process is illustrated in steps 706-708 of FIG.7. For each CPE 106 in the list, the method steps through the programsin a designated interval and determines whether or not the CPE 106requested that program when it was available. This process is shown insteps 710-712 of FIG. 7.

If a certain program was requested, this is indicated accordingly perstep 714. In some embodiments, a master table is used to record theseindications. In one variant, the master table is continually updated pereach indication of a requested program. In other variants, a file iscreated locally comprising a record of all indications of requestedprograms with respect to a particular CPE 106. The file is subsequentlytransmitted to a remote node as a single data stream or structure, andthe remote node then updates the master table accordingly.

FIG. 8 shows the result of aggregating the viewership data of two CPE502(1) and 502(2) according to the aforementioned method. In FIG. 8,three letters (e.g., “abc”) represent an available program. If theletters appear in bold, this indicates that the program was requested bythe subscriber at the indicated time. Note that a given CPE 106 mayrequest more than one program at a given timeslot. This may occur, forexample, when a subscriber has a CPE 106 with DVR capability or multipletuners, and thus can view a program broadcast on one channel whilesimultaneously recording a program on another channel.

The resulting aggregated data is then stored in the aggregated datatable 802 shown in FIG. 8. This data includes a listing of all programswatched at a given time period for the set of CPE 106 that wereaggregated. After all of the relevant data has been aggregated, one ormore algorithms can then process this data in a myriad number of ways inorder to determine the appropriate content to be broadcast (see infra,FIG. 6. and accompanying discussion).

Bandwidth “Defragmentation”—

In another aspect of the invention, methods and apparatus fordefragmentation of bandwidth are disclosed. In one embodiment, theapparatus comprises a software routine or application; e.g., a module ofthe aforementioned server process 452, although other approaches(including stand-alone applications and devices) may also be used. Theprimary function of the bandwidth defragmenter (not shown) is to rescue“stranded” bandwidth which accumulates over time, much akin to the wayHDD storage fragments and accumulates over time when operating a PC orother computerized device. For example, a typical QAM may be able tocarry 10 SD streams (3.75 Mbps each, or 37.5 Mbps total), oralternatively 2 HD streams (15 Mbps each, or 30 Mbps total). Cablesignals are transmitted using a Quadrature Amplitude Modulation (QAM)scheme, and hence the available payload bitrate for typical modulationrates (QAM-256) used on HFC systems is roughly 38 Mbps. Therefore, if aQAM is carrying the aforementioned 10 SD streams, very little bandwidthwill be stranded. However, if that same QAM were carrying the 2 HDstreams, then about 8 Mbps is left “stranded” (38 Mbps−30 Mbps=8 Mbps).If this stranded 8 Mbps were identified, it could be filled with 2 SDstreams (7 Mbps), thereby stranding about 1 Mbps.

The algorithm of the present invention accordingly performs three (3)primary functions: (i) identifies “stranded” bandwidth (i.e., that whichis not suitable for delivery of desired content, such as an HD or SDprogram stream); (ii) determines an optimal, or at least more optimal,configuration for the program streams being delivered in order to freeup at least a portion of the stranded bandwidth (which may includewithout limitation moving the streams to different QAMS, changing theencoding rate, type of encoder, etc.); and (iii) affirmativelyimplements the foregoing configuration changes; e.g., causes movement ofthe program streams among QAMs. These functions are implementedconsistent with desired business or operational goals, such as e.g.,maximizing delivery of HD streams to subscribers given existingbandwidth constraints.

The aforementioned algorithm is also responsible for generating (orcausing to be generated via a proxy, such as the aforementioned serverprocess 452) updated channel maps for transmission downstream to the CPE106.

Exemplary methods and apparatus for QAM program stream and bandwidthallocation that may be used consistent with present invention aredescribed in co-owned and co-pending U.S. patent application Ser. No.10/881,979 entitled “METHOD AND APPARATUS FOR NETWORK BANDWIDTHALLOCATION” filed Jun. 29, 2004, incorporated herein by reference in itsentirety. However, in the present context, the server process 452(optionally in conjunction with the defragmentation algorithm) ispredictively filling in or recovering stranded bandwidth; i.e., withunrequested programs. Hence, in one variant, the two processes (serverand defragmenter) cooperate to service all pending program streamrequests, and optimize the use of any remaining bandwidth for predictivedelivery of non-requested programs.

Moreover, the server process 452 and defragmenter of the presentembodiment can advantageously operate across multiple services withinthe network (e.g., BSA, VoD, etc.), such as in conjunction with a VoDsession resource manager (SRM).

Network Server Device—

Referring now to FIG. 9, one embodiment of the improved network serverdevice with predictive capability according to the present invention isdescribed. As shown in FIG. 9, the device 901 generally comprises andOpenCable-compliant BSA network server module 196 adapted for use at thehub site of FIG. 1 c (or FIG. 4), although the server may comprise othertypes of devices (e.g., VOD or application servers) within the networkas previously described.

The server 901 comprises a digital processor(s) 904, storage device 906,and a plurality of interfaces 907 for use with other network apparatussuch as QAM combiners, IP routers and other packet network devices,network management and provisioning systems, local PCs, etc. Othercomponents which may be utilized within the server device 901 includeamplifiers, board level electronic components, as well as mediaprocessors and other specialized SoC or ASIC devices. Support forvarious processing layers and protocols (e.g., 802.3, DOCSIS MAC, OOBchannels, DHCP, SNMP, H.323/RTP/RTCP, VoIP, SIP, etc.) may also beprovided as required, such as in support of data and “rules” interchangebetween the server 901 and the CPE. The server process 452 is alsodisposed to run on the server module 901, and to provide if applicable afunctional interface with the client process 454 on the network CPE 106,or other interposed entities. These components and functionalities arewell known to those of ordinary skill in the cable and embedded systemfields, and accordingly not described further herein.

The server device 901 of FIG. 9 may take any number of physical forms,comprising for example one of a plurality of discrete modules or cardswithin a larger network edge or hub device of the type well known in theart. The server may also comprise firmware, either alone or incombination with other hardware/software components such as thosepreviously described (e.g., disposed in the aforementioned edge device).Alternatively, the server module 901 may be a stand-alone devicedisposed at the hub or other site, and may even include its own RF frontend (e.g., modulators, encryptors, etc.) or optical interface so as tointerface directly with various portions of the HFC network 101.Numerous other configurations may be used. The server device 901 mayalso be integrated with other types of components (such as satellitetransceivers, encoders/decoders, etc.) and form factors if desired.

It can also be appreciated that the methods of the present invention maybe practiced using any configuration or combination of hardware,firmware, or software, and may be disposed within one or any number ofdifferent physical or logical entities. For example, the data receipt,analysis, and control parameter generation functionality described abovemay take the form of one or more computer programs (e.g., the server andany client processes, 452, 454). Alternatively, such computer programsmay have one or more components distributed across various hardwareenvironments at the same or different locations, such as where theserver process 452 is distributed across multiple platforms at the hubsite and the headend 150.

As yet another example, portions of the functionality may be rendered asa dedicated or application specific IC having code running thereon.Myriad different configurations for practicing the invention will berecognized by those of ordinary skill in the network arts provided thepresent disclosure.

According to a preferred embodiment, the instructions comprising theserver process application 452 are stored in the mass storage device 906and subsequently loaded into the memory device 905 by the processor 904.As previously described, the server process 452 is a process adapted togather data from a plurality of nodes in a subnetwork, analyze the data,and optimize bandwidth allocation based upon this analysis. In manyembodiments, the data collected comprises viewership data 502 (i.e.,data indicating which programs were requested by certain CPE 106 atvarious times of the day) and optionally, may also comprise capabilitydata 504 (i.e., data indicating the capabilities of a particular CPE,such as its display, storage, transmission, and decoding capabilities).

According to some embodiments, once all of the necessary data isgathered, the server process 452 searches for viewing patterns orassociations within it. According to one variant, these patterns includetemporal/program correlations; e.g., repeated requests of programs at acertain hour, day, week, month, or time of the year. For example, theviewership data 502 may indicate that program X (alternatively, channelX) is always requested by at least one user in the subnetwork at 3:30 onSundays. This pattern would indicate to the server process 452 toconsider providing this content at 3:30 every Sunday. Since futureviewing patterns may subsequently change, the server process 452 mayupdate its predictions upon receiving the most recent viewing patternsat a later date, or other information which may alter the aforementionedprediction.

Note also that according to some embodiments, thresholds are used by theserver process 452 in order to determine whether content should bebroadcast. For example, assuming that the only criterion used forpredicting whether or not to broadcast a program at 1:00 p.m. on a givenSaturday is that the program was requested at 1:00 p.m. during the last9 out of 10 Saturdays. Based on such historical data, there could beconsidered a 90% likelihood that the program will be requested (althoughthis may not be a true probability). A server process 452 with athreshold set at 85% “probability”) decides to broadcast this program at1:00 p.m. during that Saturday. However, if the threshold is set at 95%,the server process 452 decides not to broadcast that program. Clearly,this approach can be extended to multiple criteria or parameters; e.g.,four of five criteria must be met to at least their respectiveprescribed thresholds before the program is selected for broadcast. Eachof the individual criteria may also be weighted (e.g., madecomparatively more or less important in the overall result).

Also, according to some embodiments, patterns are weighted accordinglybefore predictions are generated by the server process 452. For example,suppose a pattern is identified indicating that Program Y has beenrequested every Sunday at 7:00 p.m. for the last nine months. However,another pattern is identified indicating that every year, duringChristmas Sunday, Program Y is never requested. With respect to anupcoming Christmas Sunday, the server process 452 may give more weightto the second pattern, and thus decide not to provide Program Y in thecontent stream. In some variants, this weighting is accomplished by apriority listing. In other variants, numeric scalars are used to providesuch weights.

In one embodiment, viewership data is aggregated before predictions aremade by the server process 452. Aggregating data in this matter mayyield efficiency gains if the complexity of the aggregation algorithm isless than the complexity associated with aggregating predictionsgenerated from viewership data individually with respect to each CPE106. Exemplary methods for aggregating data have been discussed herein;see infra, FIGS. 7 and 8 and accompanying discussion.

Furthermore, in certain embodiments, the server process 452 is furtheradapted to predict the bandwidth available on the network over a certainperiod of time. In one variant, this is accomplished by determining thebandwidth required for each program predicted to be requested over acertain time period, and subtracting this amount from the totalavailable bandwidth during that time. This may be accomplished on mostany time scale desired; e.g., such as instantaneous bandwidth data, orthat aggregated and averaged over a finite period (e.g., 5 minutes).Note that the bandwidth required for each program may depend on thecompression scheme utilized (e.g., MPEG2 or MPEG4) and the version ofthe program expected to be requested (e.g., a high definition orstandard definition broadcast).

Conversely, in those embodiments where capability data is gathered, thisdata may be used to select an optimal compression scheme or videocontent level for broadcasting content. Thus, if sufficient bandwidth ispredicted to remain available over a designated period, and each CPE 106in a subnetwork can support a high definition broadcast, the serverprocess may select a high definition version of a certain program. Thisis especially true if others in the same subnetwork can be migrated ontothe HD broadcast. Conversely, if a CPE suddenly tunes to the highdefinition broadcast, assuming that this CPE cannot support the highdefinition version, a standard definition equivalent of the same programmay thereafter be substituted.

CPE—

FIG. 10 illustrates an exemplary embodiment of the improved CPE 106according to the present invention. As shown in the simplified diagramof FIG. 10, the device 106 generally comprises and OpenCable-compliantembedded system having an RF front end 1002 (including tuner anddemodulator/decryptors) for interface with the HFC network 101 of FIGS.1-1 c, digital processor(s) 1004, storage device 1006, and a pluralityof interfaces 1008 (e.g., video/audio interfaces, IEEE-1394 “Firewire”,USB, serial/parallel ports, etc.) for interface with other end-userapparatus such as televisions, personal electronics, computers, WiFi orother network hubs/routers, etc. Other components which may be utilizedwithin the device (deleted from FIG. 10 for simplicity) variousprocessing layers (e.g., DOCSIS MAC or DAVIC OOB channel, MPEG, etc.) aswell as media processors and other specialized SoC or ASIC devices. TheCPE 106 may also comprise an integrated HD decoder, thereby relievingany connected monitors or other devices from the requirement of havingsuch a decoder. These additional components and functionality are wellknown to those of ordinary skill in the cable and embedded systemfields, and accordingly not described further herein.

The CPE 106 of FIG. 10 is also provided with an OCAP 1.0-compliantapplication and Java-based middleware which, inter alia, manages theoperation of the device and applications running thereon (including theclient process application 254). It will be recognized by those ofordinary skill that myriad different device and software architecturesmay be used consistent with the tuning functions of the presentinvention, the device of FIG. 4 being merely exemplary. For example,different middlewares (e.g., MHP, ARIB, or ACAP) may be used in place ofthe OCAP middleware of the illustrated embodiment.

The exemplary CPE 106 further comprises a conventional “Watch TV”application or the like, which services those program or user channelsavailable over the network. The Watch TV application, residing inmemory, provides such functions as channel navigation control, channelselection in response to a channel change event, etc. In one embodiment,the Watch TV application further comprises all necessary functionalityneed to support the client process 454 when the latter is deployed onthe CPE 106. For example, the Watch TV or other application wouldinclude the necessary programming interfaces (APIs) to support thegathering of the necessary data for subscriber tuning or other activityas well as capabilities and other configuration-related informationabout the CPE, and communication of these data back upstream to theserver process 452 and/or the headend process 450 (if used). Aspreviously described, the “client portion” 452 of the server process,where used, may also be given varying degrees of capability itself, suchas local processing of gathered data, implementation of an upstreamcommunications multiple access scheme (e.g., so as to avoid overloadingupstream communication channels with data messages, etc.).

In another embodiment, the CPE 106 comprises a converged premises device(CPD), such as for example that described in co-owned and co-pendingU.S. patent application Ser. No. 11/378,129 filed Mar. 16, 2006 andentitled “METHODS AND APPARATUS FOR CENTRALIZED CONTENT AND DATADELIVERY”, incorporated herein by reference in its entirety. Forexample, this converged device may include the aforementioned clientprocess functionality 454 running on the processor thereof. Theconverged device is remotely manageable and acts as a centralized clientnetworking platform providing gateway services such as networkmanagement as well as traditional content and high-speed data deliveryfunctions. The device also acts as the shared internet (e.g., Internet)connection for all devices in the premises via a cable modem or othersuch interface, sharing personal and DVR content such as video, musicand photos (and any associated metadata) throughout the premises, andproviding both a wired and wireless network in the home. The clientprocess 454 of the present invention can, when used, therefore be usedto control and configure the provision of data (such as e.g., theviewership data 502 and activity data 504 previously described) backupstream such as to the BSA hub process 452 and/or the headend process450. The aforementioned converged device can also be optionallyconfigured to provide viewership data, capability, and any other usefuldata relating to other devices within the premises network served by theconverged device (e.g., DVRs, PCs, etc.).

It will also be recognized that the above-referenced converged premisesdevice (CPD) may be capable of receiving and/or delivering content inmore than one type of format. Accordingly, in another embodiment of theinvention, the predictive algorithms previously described are configuredto track when and what channel a given program of a given encoding(e.g., MPEG2, MPEG4, etc.) or resolution (e.g., bitrate, HD, SD, etc.)is predictively delivered, and subsequently use this information. Ineffect, use of the converged device with such capabilities permits thepredictive delivery algorithms more latitude in servicing requests,since the converged device is somewhat of a “don't care” entity withrespect to what encoding and/or bitrate of content it can receive. Atypical STB with one type of codec and one available resolution (e.g.,SD) in contrast requires much more specific control by the predictivealgorithm to ensure that an appropriate format is delivered. Hence, thepredictive delivery algorithm can for example provide predictivedelivery of content in a single format which is suitable to theconstrained one-format STB, as well as the converged device which canaccept a number of formats, as opposed to perhaps requiring providingtwo different streams in two different formats which would consumeadditional bandwidth and resources.

Operations/Business Rules Engine—

In another aspect of the invention, the aforementioned server process452 (e.g., rendered as one or more computer programs) optionallyincludes a business rules engine. This engine comprises, in an exemplaryembodiment, a series of software routines running on the server deviceof FIG. 9 or other associated hardware/firmware environment adapted tocontrol the operation of the predictive analysis and allocationalgorithms previously described. These rules may also be fullyintegrated within the server process 452 itself, and controlled viae.g., a GUI on a PC connected to the server 901. In effect, the businessrules engine comprises a supervisory entity which monitors andselectively controls, via the server process 452, the CPE data analysisand anticipatory control functions at a higher level, so as to implementdesired operational or business rules. The rules engine can beconsidered an overlay of sorts to the algorithms of the server process452 previously described. For example, the server process 452 may invokecertain operational protocols or decision processes based on datareceived from the CPE 106, as well as network operational data,demographic data, geographic data, etc. However, these processes may notalways be compatible with higher-level business or operational goals,such as maximizing profit or system reliability. Hence, when imposed,the business/operational rules can be used to dynamically (or manually)control the operation of the server process 452, in conjunction with theoperational “recommendations” generated by the server process 452 aspart of its predictive analysis and control functions previouslydescribed.

For example, one rule implemented by the rules engine may compriseselectively switching certain broadcast channels to certain users first(e.g., those with a higher subscription priority or level) underbandwidth-limited cases, and only after this tier of users is satisfied,switching the channel to the remaining users.

Another rule might allow for the selective choice between two or moreprogram streams that are eligible for predictive insertion orreclamation. For example, the streams may have different advertisingloading, and hence it may be desirable (from an advertising revenueperspective) to insert and maintain the more highly advertising-ladenstream and drop one or more of the others, all else being equal.

Similarly, channels can be allocated to those users which, e.g., basedon demographics, historical patterns, geographic area, etc. will makebest use of the bandwidth in terms of monetary return, profit, or someother business performance metric. For example, it may be know throughhistorical usage or purchase data that certain zip codes will tend torespond better to increased targeted advertising than other zip codes(say, due to the increased disposable income of residents in that zipcode). Hence, an advertiser's budget is most effectively used when theiradvertisements are included in streams which are switched into such zipcodes. An MSO might also be able to charge a premium rate foradvertising for such channels, since the advertiser's expected yield istypically higher than for channels switched into other zip codes.Accordingly, the MSO might invoke a business rule that selectively andpredictively switches channels carrying only “premium” advertisementsinto the best zip codes (or demographic slices), while switchingchannels with second-tier advertisements into other zip codes ordemographic slices. Such switching to certain zip codes can be performedusing, inter alia, the methods and apparatus set forth in U.S. patentapplication Ser. No. 11/186,452 entitled “METHOD AND APPARATUS FORBOUNDARY-BASED NETWORK OPERATION”, previously referenced andincorporated herein.

Many other approaches and combinations are envisaged consistent with theinvention, as will be recognized by those of ordinary skill whenprovided this disclosure. An example is the application of businessrules in cases of arbitration of edge QAM resource allocation betweencontending services such as BSA and VoD. Another example is theprioritization or assignment of a “grade of service” to a specificprogram supplier (e.g. The Golf Channel) for a fee. A non-blocking gradeof service can thus be assigned to the programmer wherein content fromthat programmer is given first or high priority for predictiveinsertion, at the expense of non-insertion or removal of a lowerpriority programmer based on business rules. Enforcement of suchbusiness rules may be executed by servers separately for each service(e.g. BSA or VoD) or centrally via the controlling actions of a masterSRM (Session and Resource Manager), BSA manager 450, or other agent.

For example, one rule implemented by the rules engine may compriseallocating remaining bandwidth (i.e., that over what is needed toservice existing requests) that would normally be used to supportpredictive insertion of non-requested programs can also be dynamicallyre-allocated between more/less predictive insertion and less/more otheruses, such as VoD or DOCSIS channels, trickle download, etc. Forexample, where a given prediction does not hold true (i.e., theprediction is not accurate in terms of request for a given program),other programs can be predictively inserted, or the non-requestedprogram can simply be removed and the freed up bandwidth used for anyother purpose.

Business Methods—

Moreover, effective capacity prediction may provide a greater ability tosupport extra services, e.g., using the extra capacity represented bythe difference between the fixed bandwidth and the predicted bandwidthto support more content delivery requests. See e.g., co-assignedapplication Ser. No. 11/800,093 entitled “METHODS AND APPARATUS FORPREDICTIVE CAPACITY ALLOCATION” previously incorporated herein. Variousbusiness models may be supported by such effective capacity predictionwhen used in conjunction with the predictive bandwidth analysis andallocation techniques described herein. For example, one such model maycomprise using the extra capacity to promote the programs and/orservices available to subscribers. To enhance utilization of this sparecapacity, a special price or other incentives may be offered toencourage viewers to request movies or other content that can beserviced using the spare capacity of the system alone. Movies may, forexample, be downloaded to subscribers' digital video recorder (DVR)devices at slower than real-time streaming rates (e.g., trickles), orhigh-speed downloads conducted in two or more bursts, compatible withthe available excess capacity. The method may include network operatorsproactively sending content to subscribers' DVRs, based on knowledge ofthe subscribers' viewing or delivery preferences, using the excess orotherwise wasted capacity.

In another embodiment, extra bandwidth may be offered to Internet accesssubscribers at discounted rates or gratuitously, during portions of theday when extra bandwidth is available, so as to increase theirsatisfaction (e.g., higher download speeds). Extra bandwidth might alsobe selectively allocated to business-class customers (typically a highprofit margin) before allocation to residential customers.

It will also be recognized that subscriber participation in obtainingviewership data of the type described herein may be provided on an“opt-in/out” basis, and may also be the subject of consideration, or anincentive or payment program; e.g., subscribers opting in and providingtheir viewership data may receive special promotional features orcapabilities, reductions or offsets of their monthly subscription costs,etc.

It will be recognized that while certain aspects of the invention aredescribed in terms of a specific sequence of steps of a method, thesedescriptions are only illustrative of the broader methods of theinvention, and may be modified as required by the particularapplication. Certain steps may be rendered unnecessary or optional undercertain circumstances. Additionally, certain steps or functionality maybe added to the disclosed embodiments, or the order of performance oftwo or more steps permuted. All such variations are considered to beencompassed within the invention disclosed and claimed herein.

While the above detailed description has shown, described, and pointedout novel features of the invention as applied to various embodiments,it will be understood that various omissions, substitutions, and changesin the form and details of the device or process illustrated may be madeby those skilled in the art without departing from the invention. Theforegoing description is of the best mode presently contemplated ofcarrying out the invention. This description is in no way meant to belimiting, but rather should be taken as illustrative of the generalprinciples of the invention. The scope of the invention should bedetermined with reference to the claims.

What is claimed is: 1.-49. (canceled)
 50. A client premises apparatus,for use in a content distribution network, configured to operate withoutan upstream communication channel, comprising: a network interface, saidnetwork interface configured to receive at least one or more signalsfrom said network, said at least one or more signals comprising at leastone radio frequency (RF) carrier having content encoded thereon; an RFtuner; a processor; a computer program configured to run on saidprocessor, said computer program comprising a plurality of instructionsthat, when executed: process a received channel or program request;determine, based at least in part on said processing, whether saidrequested channel or program request can be serviced locally by saidapparatus; and when said channel or program request can be servicedlocally by said apparatus, cause said tuner to tune to said at least oneRF carrier in order to service said request.
 51. The client premisesapparatus of claim 50, wherein said determination of whether saidrequest can be serviced locally comprises access to a local channel map,said channel map comprising at least one association between a programchannel and an RF carrier.
 52. The client premises apparatus of claim51, wherein said local channel map is received by said apparatus viasaid network interface.
 53. The client premises apparatus of claim 50,wherein said act of local service of said request comprises said tunerconfigured to tune to an RF carrier currently being delivered, saidcurrently delivered RF carrier comprising said requested channel orprogram stream.
 54. The client premises apparatus of claim 53, whereinsaid requested channel or program stream may not be presently requestedby any other apparatus within a same service group as said clientpremises apparatus, and may be predictively or speculatively insertedonto said RF carrier currently being delivered.
 55. A network apparatusconfigured to determine which of a plurality of unrequested contentelements to distribute over a content delivery network, said apparatuscomprising: a storage device; and a processor in communication with saidstorage device and configured to execute at least one computer programthereon, said computer program comprising a plurality of instructionswhich are configured to, when executed by said processor: determinewhich of said plurality of unrequested content elements are to bedelivered over said network to said plurality of devices at a futurerecurring time based at least in part upon a plurality of viewershipdata, said plurality of viewership data comprising data configured toindicate one or more recurring times of day; and transmit said pluralityof unrequested content elements in a multiplexed stream to saidplurality of devices at said future recurring time; wherein said futurerecurring time comprises a time period similar to said one or morerecurring times of said plurality of viewership data.
 56. The networkapparatus of claim 55, wherein said viewership data comprises dataconfigured to indicate which of a plurality of channels were requestedat given parts of a day.
 57. The network apparatus of claim 55, whereinsaid viewership data comprises data configured to indicate which of aplurality of programs were requested at given parts of a day.
 58. Thenetwork apparatus of claim 55, wherein said at least one computerprogram is further configured to, when executed, receivecapability-related data from at least a portion of said plurality ofdevices; and wherein said determination of said plurality of unrequestedcontent elements that are delivered over said network is based at leastin part upon said viewership data and based at least in part upon saidcapability data.
 59. The network apparatus of claim 58, wherein saidcapability data comprises decoding capabilities of at least a portion ofsaid plurality of devices.
 60. The network apparatus of claim 59,wherein said at least one computer program is further configured to whenexecuted select an optimal codec to compress said requested contentbased at least in part upon said decoding capabilities.
 61. The networkapparatus of claim 55, wherein said determination of said plurality ofunrequested content elements that are delivered over said networkfurther comprises a determination of said individual ones of saidplurality of unrequested content elements based at least in part uponsaid viewership data and bandwidth available in said network at a timeof said delivery.
 62. The network apparatus of claim 61, wherein saidcomputer program is further configured to, when executed, replace alower quality version of a content element with a higher quality versionof said content element.
 63. The network apparatus of claim 61, whereinsaid computer program is further configured to, when executed, replace ahigher quality version of a content element with a lower quality versionof said content element.
 64. The network apparatus of claim 61, whereinsaid computer program is further configured to, when executed, providedesignated services to said plurality of devices when sufficientbandwidth is available.
 65. A method of determining which of a pluralityof content elements to distribute over a content delivery network at agiven time, said method comprising: receiving at a content server withinsaid network bandwidth data from a plurality of devices serviced by saidserver regarding past or present content viewing; determining a firstones of said plurality of content elements to be subsequently deliveredover said network to said plurality of devices based at least in partupon said viewership data; and delivering said first ones of saidplurality of content elements to said plurality of devices; wherein saidact of determining said first ones of said plurality of content elementsto be delivered is based at least in part upon available bandwidth insaid network.
 66. The method of claim 65, further comprising:identifying a plurality of patterns in said historical viewership data;prioritizing at least one of said plurality of patterns identified insaid historical viewership data; and utilizing said prioritized patternto predict said first subset of said plurality of content elements. 67.The method of claim 65, wherein said viewership data comprises dataindicating which channels were requested at certain times of day and/ordata indicating which programs were requested at certain times of day.68. The method of claim 65, further comprising replacing a lower qualityversion of a content element with a higher quality version of saidcontent element when: (i) each device from said plurality canaccommodate said higher quality version, and (ii) there is sufficientbandwidth available for replacing said lower quality version with saidhigher quality version.
 69. The method of claim 65, further comprisingreplacing a higher quality version of a content element with a lowerquality version of said content element when: (i) there is insufficientbandwidth available to sustain broadcasting said higher quality versionto said plurality of devices, or (ii) at least some of said plurality ofdevices are not capable of decoding or utilizing said higher qualityversion.